On May 2, 2016, at 10:51 AM, Mike Bayer <mba...@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






__________________________________________________________________________
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

Reply via email to