Welcome to the inaugural MongoDB Matters column, which will appear six times a year in Database Trends and Applications. Over the past 8 years, we’ve seen a truly once-in-a-generation explosion of new database technologies which have challenged—if not overthrown—the dominance of the venerable relational database. Of all these upstart databases, MongoDB seemed to us to most deserve dedicated coverage because of its strong momentum and adoption.
DB-Engines ranks database systems according to their popularity using website references, search frequency, job postings, social network and Stack Overflow mentions. It tracks more than 250 systems, of which more than 100 achieve a non-trivial score. MongoDB consistently achieves fourth position on db-engines.com, with only Oracle, MySQL, and SQL Server consistently reporting a higher popularity score.
How did MongoDB achieve so rapidly such a prominent position in the database ecosystem?
MongoDB was developed by startup 10gen, which was attempting to build a PaaS cloud. MongoDB represented the database element of that cloud, and in 2009 10gen decided to abandon the PaaS product and concentrate exclusively on this new database.
Almost immediately, MongoDB showed greater adoption than other contemporary NoSQL systems, many of whom had apparently more sophisticated internal architectures. The secret of MongoDB’s success can be found in the immortal words of ex-Microsoft CEO Steve Ballmer: “developers, developers, developers.” While other aspiring database vendors attempted to woo the DBA or CIO, MongoDB focused almost exclusively on developers—doing everything in its power to make it easy for developers to adopt the platform.
Experienced database professionals often express horror at the idea of a “schemaless” database system. Their concern is that the internal structure of the database will become inconsistent or compromised and that non-programmers will be unable to access a system that provides no “map” of internal data for the non-programmer.
However, relational database advocates have yet to provide a satisfactory means of integrating relational schemas into modern Agile and Continuous Integration processes. In a modern Continuous Integration pipeline, new versions of an application are being continuously build and tested as code is committed to version control systems. In some cases, the built code is automatically deployed to production (Continuous Deployment). The fixed schemas of the RDBMS are inconsistent with these processes, as they require complex change control procedures. With a schemaless database like MongoDB, the database schema is held only in the application code, allowing Agile and Continuous Integration procedures to proceed seamlessly. Modern web applications need to iterate rapidly, so the agility associated with schemaless databases becomes a competitive advantage.
Like all open source software companies, MongoDB is challenged to establish a reliable revenue stream, even given their large install base. MongoDB is licensed under the AGPL open source license and—unlike MySQL—there is no real circumstance under which a user of MongoDB can be compelled to buy a commercial license. MongoDB, the company, offers an enterprise version of MongoDB which adds additional capabilities—mainly products layered onto the base database engine.
This enterprise version includes a query tool called Compass, a management and monitoring tool called MMS, a BI interface that provides SQL access to MongoDB data, and integration with Kerberos and LDAP authentication.
MongoDB recently announced Atlas—a fully cloud hosted version of MongoDB available initially in AWS and eventually in Microsoft Azure and other clouds.
In subsequent columns, we’ll follow the technology developments in the MongoDB platform, examine case studies of MongoDB deployments, and see how MongoDB is succeeding in its quest to be the “new default” webscale database.