MongoDB Drops ACID
MongoDB Drops ACID
MongoDB 4.0 will add support for multi-document transactions, making it the only database to combine the document model with ACID data integrity guarantees.
Join the DZone community and get the full member experience.Join For Free
Want to free your enterprise from the costs of provisioning servers? Learn about serverless architecture with Couchbase and cloud computing.
MongoDB 4.0 will add support for multi-document transactions, making it the only database to combine the speed, flexibility, and power of the document model with ACID data integrity guarantees. Through snapshot isolation, transactions provide a globally consistent view of data, and enforce all-or-nothing execution to maintain data integrity.
Transactions in MongoDB will feel just like transactions developers are familiar with from relational databases. They will be multi-statement, with similar syntax (e.g. start_transaction and commit_transaction), making them familiar to anyone with prior transaction experience. The changes to MongoDB that enable multi-document transactions will not impact performance for workloads that do not require them. In MongoDB 4.0, which will be released this summer*, transactions will work across a single replica set, and MongoDB 4.2* will support transactions across a sharded deployment.
Because documents can bring together related data that would otherwise be modeled across separate parent-child tables in a relational schema, MongoDB's atomic single-document operations already provide transaction semantics that meet the data integrity needs of the majority of applications. But multi-document transactions will make it easier than ever for developers to address a complete range of use-cases, while for many, simply knowing that they are available will provide critical peace of mind. With MongoDB 4.0, you'll be able to rely on transactional integrity, regardless of how you model your data.
The imminent arrival of transactions is the culmination of a multi-year engineering effort, beginning over 3 years ago with the integration of the WiredTiger storage engine. We've laid the groundwork in almost every part of the server - from the storage layer itself, to the replication consensus protocol, to the sharding architecture. We've built out fine-grained consistency and durability guarantees, introduced a global logical clock, refactored cluster metadata management, and more. We've also exposed all of these enhancements through APIs that are fully consumable by our drivers. We're now about 85% of the way through the backlog of features that enable transactions, as this diagram summarizes:
You can read more about our drive to multi-document transactions here. And if you can't wait to take transactions for a spin, we'd love to have you join our beta program; all the details are at http://mongodb.com/transactions/.
In particular, the development, release, and timing of any features or functionality described for MongoDB products remains at MongoDB's sole discretion. This information is merely intended to outline our general product direction and it should not be relied on in making a purchasing decision nor is this a commitment, promise or legal obligation to deliver any material, code, or functionality. Except as required by law, we undertake no obligation to update any forward-looking statements to reflect events or circumstances after the date of such statements.
Published at DZone with permission of Eliot Horowitz , DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.