I posted this elsewhere in Fooldom. I should post it here too (lightly edited), although this board has seen some of the points I raise already. I especially want to call out posts by Greg (sarksnz) and Ethan.
As you might guess from my handle, I’m a database guy. At least I was one… I retired a few years ago, before document databases were really a “thing”. Still, I think I get the concepts.
An important concept here is called “open source”. This is a paradigm where a programmer makes code freely available to the community. Members of the community are permitted to use and modify the code, but only on the condition that their revisions are also freely available. I’m oversimplifying here, but I think that’s the gist of it. Why would anyone do that? With many hands working on the code, it gets built faster and bugs are spotted and corrected more quickly. The Linux operating system is perhaps the most visible open source product out there. MongoDB’s code base started as open source. At one point not too long ago, MongoDB (the company) made some changes to the code that I – as a database professional – view as being critical to delivering a reliable database management system (DBMS). The feature is called ACID, which is an acronym. I don’t want to get into too much detail, but it is the feature that guarantees that either all of a transaction happens, or none of it does. If you’re transferring money from one account to another, either the transaction completes successfully or the money stays in the original account. There’s no risk to you that the money appears in neither place, or risk to the financial institution that the money appears in both! About the same time that this feature was introduced, MongoDB (the company) changed the licensing agreement to make it much more proprietary. Personally, I think a DBMS that doesn’t support ACID is little more than a useful toy. Once you support ACID, you’ve graduated to the big leagues.
What Amazon has done – if I’m interpreting what I’ve read correctly, and the postings have been accurate – is grabbed a pre-ACID version of the code, from when MongoDB (the software) was still open source. That’s legal, and it’s a risk of open source code. I am not aware that Amazon’s version has been altered to support the ACID feature. I think if it supported ACID, Amazon would go out of their way to say so. Amazon is also marketing their version as being MongoDB-compliant. Since I don’t know enough about the changes that were made associated with the post-ACID versions of MongoDB (the software), I can’t say whether those claims are true or not. I suspect they’re mostly (but not completely) true. In the SQL world, code like “BEGIN TRANSACTION”, “COMMIT TRANSACTION”, and “ROLLBACK TRANSACTION” supported ACID features. I would guess that similar code is absent in pre-ACID versions of the DBMS, and I don’t know how Amazon’s version of the code would treat those (or similar) instructions. If the answer is “It ignores them.”, then I view its “compliance” as suspect. But, again, I’ve been away from the database field for long enough that I could have some things wrong. Also again, my time in the database world predates document databases.
I think the true threat is less than it appears. If Amazon is targeting companies that know enough to want MongoDB-compliance but don’t know enough to ask about ACID (or require it), they may get some conversions, but I doubt they’d get any “mission-critical” database conversions. If they modify their version to include the ACID feature, they’d need to do so in a way that they’re not violating any intellectual property (IP) that MongoDB (the company) has regarding their proprietary product. Do I rule out the possibility that Amazon will want to get into the DBMS business and create their own proprietary version that is ACID-compliant? No. Do I think they’ll do that? No. I think what Amazon has done so far is probably pretty easy – creating their own fork of open source code. Maybe adding a few nice features so they can claim differentiation. Modifying and maintaining a DBMS is harder. I’m not sure they’ll want to take that on, although they’ve succeeded in tackling some hard stuff, no doubt. Many SQL databases from different vendors supported ACID without violating each others’ IP. It’s certainly possible. But the fact that they’ve taken an easy step doesn’t convince me that they’ve committed to taking the hard steps. More likely, I think they’re trying to grab low-hanging fruit, and will leave the serious implementations for MongoDB (the company and the software). We should definitely watch to see if and how Amazon’s version evolves. Until Amazon’s version supports ACID, I’m not too worried. If they show signs that they’re moving in that direction, though, concern is warranted.
I could be wrong, but that’s how I view it. I don’t intend to alleviate concerns so much as to give them context and give you some sense of the probability of a game-changing outcome for our little DBMS vendor. If you have questions about what I’ve written or if what I’ve written generates more questions, please feel free to follow up with another post.
Fool on!
Thanks and best wishes,
TMFDatabaseBob (long: AMZN, MDB)
Maintenance Coverage Fool
See what a “Coverage Fool” does here: http://www.fool.com/community/community-team.aspx
See my holdings here: http://my.fool.com/profile/TMFDatabasebob/info.aspx
Peace on Earth
Please note: I am not a member of any newsletter team. My opinions are my own and do not necessarily reflect those of the TMF advisers. I am not an investment professional, merely an investor.