In our recent post, we spoke of the MO that MongoDB will be judged as guilty until proven innocent. Actually, that is the scrutiny that any database provider should be subject to, because databases run your business. And so the trajectory of MongoDB, like other developer- and departmental-friendly databases like MySQL and SQL Server before it, is building enterprise-grade features from the bottom up.
With the most recent release improving the robustness of BI queries, database writes, schema validation, and Python support, the upcoming 4.0 release will tackle ACID. MongoDB is making the ACID feature of 4.0 available for testing in public beta.
ACID support is often considered a rite of passage for up and coming databases. It means ensuring that transactions are fully committed or not at all, and after the transaction is completed, the data will be updated. It also means that individual transactions cannot get impacted by other transactions and that once transactions are committed, the updated data will remain valid even if the database suffers an outage.
These requirements have been associated with back office financial systems, where there cannot be any doubt that transaction writes and updates will not get corrupted. But there are other use cases that also benefit from ACID support comes in handy. If you are running a distributed database, you can bolster confidence in the data if you provide assurance of how consistency will be managed -- will it be immediate or eventual?
MongoDB will release its 4.0 version later this year. While they have not yet disclosed the full feature list, they are letting the ACID feature out for public testing now. The reason for the early disclosure is that such a feature is extremely fundamental to the operation of a database. While we take ACID for granted with the Oracles and SQL Servers of the world, a number of emerging databases, from Amazon Aurora to Azure Cosmos DB and Google Cloud Spanner are differentiating themselves on this very feature. Even analytic data platforms, like Hadoop.
MongoDB's ACID support will extend across multiple documents. But you can be selective -- not all MongoDB implementations will require ACID support, and not all data elements in each document or collection will need ACID. You turn it on or off with SQL-like "start" and "commit" statements. In the initial beta, ACID support will be restricted to a single replica, with distributed support for sharded clusters expected in a subsequent release later this year.
In some instances, the case for ACID is black and white. If the use case is related to maintaining user profiles, ACID is not critical. On the other hand, if you're running a real-time feed of capital markets tickers or managing inventory updates for an e-commerce application, ACID compliance is a make or break issue.
But in other cases, requiring ACID may be more shades of gray. For instance, an application that tracks user purchases and preferences may only require ACID for items bought. MongoDB's new ACID feature, which extends to collections of multiple documents, will let you be selective on what data entities to apply ACID.
ACID support in MongoDB is the culmination of a series of upgrades that began with the implementation of the WiredTiger engine that came in the 3.0 release. The WiredTiger storage engine in turn cleared the way for related capabilities such as tunable write locks and change streams.
And it doesn't mean that you couldn't have run ACID transactions in MongoDB before this. But until now, you had to write transaction support in the application code. By building ACID support in the database, it will not only address a checkbox item, but it will lift a burden off developers that will simplify maintenance and make their transaction applications more reliable.
Previous and related content
Day one of trading was good for MongoDB. The company has grown with a developer-friendly platform, a unique open source model, and an ability to poach workloads from the Oracles and SQL Servers of the world. The looming challenge is how it navigates coopetition with its frenemies in the cloud.
At its annual user conference, MongoDB detailed its product and cloud roadmap. While positioning itself as a new kind of database, it is adding features geared for DBAs. And with the first birthday of its Atlas-managed cloud service, MongoDB is extending it from Amazon to Azure and Google clouds.
MongoDB 3.4 may not be bleeding edge, but it adds some key features to solidify its case for enterprise deployment. At the top of the list, SQL is finally a first class citizen.