With MongoDB 4.0, the NoSQL database is going deeper into what is widely seen as the sweet spot of SQL-based systems:...
ACID transactions. The processing guarantees provided by ACID compliance are a requirement in many applications -- and something of a holy grail for NoSQL users.
Vendor MongoDB Inc. said this week that the upcoming new version of its software would support the ACID properties -- atomicity, consistency, isolation, and durability -- in transactions across multiple MongoDB documents. Such support gives the database a foothold in mission-critical applications where NoSQL's usual style of eventual consistency for data isn't a good fit.
"MongoDB is officially dropping ACID," CTO and co-founder Eliot Horowitz dryly deadpanned at a company event in Seattle. MongoDB 4.0, the company's first major update since going public late last year, is available now as part of a beta program, with a full release expected to ship this summer, Horowitz said.
Prior to this release, MongoDB had supported a form of transactional consistency at the individual document level. To expand that consistency across multiple documents required work at the application level, and significant developer effort, Seong Park, MongoDB's vice president of strategy, said in an interview.
Building out applications
MongoDB is a document-oriented database that allows developers to create application portions built as software objects, described as "documents." The approach has freed developers from the task of creating relational schemas before building out applications.
But a need for the type of data consistency enjoyed by SQL relational databases has become common.
For example, in e-commerce applications, system architects who originally turned to NoSQL databases for fast data handling have had to find other ways to provide the most accurate and most recent data to users. This is a key use case that MongoDB 4.0 is meant to address.
Seong and Horowitz said the work to build multi-document ACID transaction support has been a major undertaking, underway at least since the company's 2014 purchase of WiredTiger Inc., the developer of a storage engine that has subsequently become MongoDB's default data store.
What's up, multi-doc?
Working consistently with transactional data from many data sets or documents is a common scenario for applications today, according to Doug Henschen, an analyst at Constellation Research.
"If your customer data is in one document set and order details are in another, for example, you'd need this multi-document capability to ensure ACID characteristics," Henschen said. To date, that has been accomplished in MongoDB by "complicated developer workarounds," he added.
MongoDB's move was prompted by users who wanted full ACID transactions, and also wanted to store complex sets of data rather than single documents, according to IDC analyst Carl Olofson. Among such users, he'd seen some moving from MongoDB to relational databases for lack of such capabilities.
And this lack was a lure not only to relational alternatives. It put MongoDB at a competitive disadvantage against NoSQL rival MarkLogic Corp., Olofson said. That company, one of the first to successfully commercialize NoSQL, has supported complex ACID transactions for a number of years, using what's known as multi-version concurrency control.
Riding the DevOps train
Much of MongoDB's success in recent years occurred as it has ridden along with the Agile and DevOps developer movements. Because of its schemaless nature, the NoSQL software supports Agile development better than relational database management systems, Olofson said.
"It means that developers can build and change applications without needing a DBA to define or revise a schema first," he said. But, he added, that comes with a cost.
The RDBMS remains the more powerful platform for supporting queries not anticipated by the developers, according to Olofson. Support for operational functions like guaranteed transactions are a step forward for MongoDB, but complex query capabilities may continue to give relational databases an important edge, he said.
For his part, Henschen said the implications that the capabilities included in MongoDB 4.0 will have on various transactional workloads remains to be seen.
"The feature won't be extended to sharded clusters until the MongoDB 4.2 release, and the date for that release has yet to be set," Henschen noted. Still, he said, it will be useful to give existing and would-be MongoDB developers more options for supporting a range of applications, including demanding ACID transactions.
Databases, including NoSQL databases, on cloud continue to expand