[openstack-dev] [nova] Distributed Database

Edward Leafe ed at leafe.com
Mon May 2 17:13:49 UTC 2016

On May 2, 2016, at 10:51 AM, Mike Bayer <mbayer at redhat.com> wrote:

>> Concretely, we think that there are three possible approaches:
>>     1) We can use the SQLAlchemy API as the common denominator between a relational and non-relational implementation of the db.api component. These two implementation could continue to converge by sharing a large amount of code.
>>     2) We create a new non-relational implementation (from scratch) of the db.api component. It would require probably more work.
>>     3) We are also studying a last alternative: writing a SQLAlchemy engine that targets NewSQL databases (scalability + ACID):
>>      - https://github.com/cockroachdb/cockroach
>>      - https://github.com/pingcap/tidb
> Going with a NewSQL backend is by far the best approach here.   That way, very little needs to be reinvented and the application's approach to data doesn't need to dramatically change.

I’m glad that Matthieu responded, but I did want to emphasize one thing: of *course* this isn’t an ideal approach, but it *is* a practical one. The biggest problem in any change like this isn’t getting it to work, or to perform better, or anything else except being able to make the change while disrupting as little of the existing code as possible. Taking an approach that would be more efficient would be a non-starter since it wouldn’t provide a clean upgrade path for existing deployments.

By getting this working without ripping out all of the data models that currently exist is an amazing feat. And if by doing so it shows that a distributed database is indeed possible, it’s done more than anything else that has ever been discussed in the past few years. 

-- Ed Leafe

More information about the OpenStack-dev mailing list