Foundationdb
Apple has acquired FoundationDB1, and the latter has become a closed source immediately from open source. To tell the truth, none of this has been noticed before. There is a DBMS product 2. From the official web site, some of its design concepts are more realistic, after all, distributed DBMS there are many difficult problems to achieve in the short term Oracle and other traditional RDBMS such as the extent is unrealistic. For example, it focuses on core features and makes trade-offs 3, 4:
- Scalable, with shared-nothing architecture.
- ACID, which supports serializable isolation levels.
- Fault tolerance is not just about avoiding single points of failure.
- Copy, multi-copy storage.
- Data model, ordered KV storage.
- Change notification, the client can subscribe to record changes.
- Atomic operation, avoiding read-modify-write?
- OLTP, suitable for small reads and writes. OLTP is limited, such as not supporting the modification of too large transactions.
- OLAP, supports range scanning for large batches of data. OLAP is not equal to a large number of data scans.
- The core does not support query language, only API.
- concurrency control employs MVCC and optimistic concurrency control.
- Threading model, not a connection thread.
- Applications can be interactive and do not rely on stored procedures.
- Backup in the form of snapshots. Do not confirm whether this is consistent.
However, from these materials it is not possible to accurately determine its actual practice 5 and the complete limit of 6. Quora found a 2013-year question and answer 7, speaking of the system to do some of the trade-offs, you can see. There are other materials as well:
- Http://2014.nosql-matters.org/cgn/wp-content/uploads/2014/05/Jennifer-Rullmann-NoSQL-and-ACID.pdf
- http://www.methodsandtools.com/archive/acidnosqldatabase.php
As Gilbert and Lynch note, their proof relies on a asynchronous model in which "there are no clock, and nodes must make de Cisions based only on the messages received and local computation. " Mahajan revisit Gilbert and Lynch ' s work and strengthen their result by employing an asynchronous model allowing local clock s, but no clock globally the visible to all nodes. ... Real time Causal (RTC) consistency that's strictly stronger than eventual consistency. Percolator, Megastore, and, most recently, spanner.
Many people like to compare NoSQL, newsql with traditional RDBMS. To a large extent, this comparison is not easy, because there is a huge difference between the requirements and the design tradeoffs. For example:
- The amount of data processed. Traditional OLTP data is not too large and centralized systems can be handled very well. However, once the data is distributed across different IDC, the situation is quite dissimilar.
- Reliability requirements. The way and ability of centralized system and distributed system is obviously impossible. Paxos appeared only after the RDBMS matured.
- Data model. New databases rarely support good relational models, such as constraints, and derived indexes, sequences, and so on.
- Query Language. API or SQL, or even XQuery?
- Data consistency. The acid of a centralized system is clearly a winning one.
- Important features. Stored procedures, views, triggers, data warehouses, it's easy to List a bunch of features that are difficult to do with a new system.
One size does not fit all.
Footnotes:1
https://foundationdb.com/
2
Https://en.wikipedia.org/wiki/FoundationDB
3
Https://foundationdb.com/key-value-store/features
4
Https://foundationdb.com/key-value-store/white-papers/anti-features
5
Https://foundationdb.com/files/Architecture.pdf
6
Https://foundationdb.com/files/FoundationDB-KeyValueStore-Spec-Sheet-3.0.x.pdf
7
Https://www.quora.com/What-is-FoundationDBs-secret-sauce
Talk about Foundationdb.