Interview Amazon's DocumentDB database service is described by the cloud corp as "MongoDB compatible", but MongoDB CTO Mark Porter has told The Register this is not entirely the case.
DocumentDB is for storing, querying and indexing JSON data and its full name on AWS is "Amazon DocumentDB (with MongoDB compatibility)."
We were curious to know more about the differences between MongoDB and DocumentDB and and so sat down with Porter at the Re:invent conference in Las Vegas.
"It is not MongoDB compatible," Porter said. "That is an untruth… it is 34 per cent compatible, through our tests. Most importantly, for our users and our customers, it is not compatible in all the ways that make MongoDB magical.
"There's no aggregation, there's no change streams, there's not as many languages; it is a 'Frankenbase', there is no other word for it. They took our Apache 2.0 drivers (and that's fine), and then they built a plug-in for PostgreSQL, and it's based on Aurora PostgreSQL… you don't get the advantages of MongoDB, you don't get the advantages of relational, you get something in the middle.
"We believe that if you want to use relational, use relational. If you want to use document, use document. We don't see the need for this product."
Porter was hired as MongoDB CTO in July 2020. He was formerly general manager at AWS, between May 2013 and October 2018, where he was responsible for Relational Database Service (RDS), Amazon Aurora, and RDS for PostgreSQL.
AWS launched DocumentDB in January 2019, at which time the company's non-relational database veep Shawn Bice said AWS had decided to "build a new purpose-built document database from the ground up," with support for MongoDB APIs. The move was likely related to MongoDB's introduction of the Server Side Public License (SSPL), developed because it was "too easy for cloud providers to capture all the value and give nothing back to the community."
The SSPL is not approved by the OSI (Open Source Initiative) as an open source licence.
We asked AWS about both MongoDB compatibility and the claim that it is based on PostgreSQL and were referred to this FAQ which states that "'MongoDB-compatible' means that Amazon DocumentDB interacts with the Apache 2.0 open source MongoDB 3.6 and 4.0 APIs."
The current version of MongoDB is 5.0. The FAQ does not mention PostgreSQL.
Has MongoDB asked AWS not to describe DocumentDB as MongoDB-compatible? "We have expressed to them that it is not MongoDB compatible... the thing to focus on here is that AWS is an awesome partner for us, and while there is a part of AWS that produces DocumentDB, the vast majority of AWS we are tight, intimate, great partners. I think you can see that here at the show with our Emerald sponsorship."
It is true that MongoDB was prominent at Re:invent, with two exhibition stands and an all-week takeover of a restaurant at the venue.
MongoDB, Porter assured us, is in excellent health. "We've had 200 million downloads of our community software since the company [founded] 16 years ago. We've had over 80 million of them in the last 12 months. We had over 10 million in November," he said.
These are non-commercial downloads, not customers, but Porter expressed the hope that "someday they'll start using our commercial products."
Does MongoDB run on Graviton, the AWS ARM-based servers? "We do not yet run on Graviton," said Porter. "We are working on it with the AWS team."
What are the challenges? "When you’re at an application level, your code recompiles and it works. That's beautiful. When you run a server product or an operating system product, it's an intimate tie together with the chip, the memory, the cache, the IO subsystem… so we're working to do that integration."
- MongoDB rolls out pick 'n' mix multi-cloud DBaaS, hopes to win over footdraggers by playing well with AWS, Google, Microsoft
Porter is also an enthusiast for serverless, a subject which came up when discussing the claims for Rust.
Migrating MongoDB code from C++ to Rust would make little difference for sustainability, he said, but "the other thing I think about for sustainability is serverless. When people allocate their own instances… you have to allocate headroom, because you might have a burst. We launched serverless last year and the goal is to run at very high utilisation so that we are more efficient, we pay less to our providers, and we use less hardware, and we're using less energy."
Serverless is on AWS, Porter told us, and is currently in beta. Will it actually work out cheaper for customers than running their own instances?
"Our goal is to have it be more economical at scale," Porter said, "but we're in beta right now." ®