CouchDB 4.0 unifies the best features of CouchDB 2.x with the consistent semantics of CouchDB 1.x. Learn more in this presentation from the CouchDB Users' Group in Berlin, Germany from October 2019.
1 file per database or view group (1 design document =1 view group) – Databases: indexed by ID and by sequence number – Views: holds one binary tree, key space per view in a design doc • replicator – “just a client process”. – Source Target. Multi-master & bidirectional. • http layer + authentication 6
if “Blue” and “Purple” are the same app with 2 consecutive writes?! Applications need to design around this: • Single application writer per document, or • Clearly defined hand-offs between different stages of processing, or • Stream-based model (documents never modified), or • Database-per-user model 21
FoundationDB. • Fully consistent, distributed data store • 10 years in the making by a dedicated development team • Intended as the underlying infrastructure for other Databases only • CouchDB implemented as a “Layer” on top of FoundationDB – CouchDB 4.0 is a completely stateless application layer for FoundationDB. 23
indexes • FDB is a consistent MVCC key-value store using PAXOS coordination and a transactional authority • FDB can be a single instance (on your Raspberry Pi or laptop) or a cluster of hundreds of Linux machines
Erlang) • Uses ACID-compliant transactions – This allows us to bring back CouchDB 1.x semantics! (And keep our ‘crash-proof’ design.) – User-visible transactions may come to a future CouchDB! • Imposes some restrictions: – 10MB per transaction – 5 seconds per transaction – Keys and values have size restrictions (10k and 100k respectively) • CouchDB documents will be broken up into multiple FoundationDB keys and values 25