
In database-land, MongoDB is the butt of a lot of jokes, but is it really any worse than mainstream databases like Microsoft SQL Server?
I’ll list pairs of bugs, and you have to guess whether it’s in MongoDB or SQL Server. You can click on the bug to learn the answer.
Question 1: Careful With That Monitoring:
- Profiling the server causes it to crash
- Querying instrumentation tables causes the database server to crash
Question 2: Locking Up the Shop:
- Database server stops responding while it’s writing to disk
- Copying tinyint data from one table to another locks up the entire server
Question 3: Random Query Results That Won’t Be Fixed:
- Generating a random number in a query makes it produce a random number of rows, too, and it won’t be fixed because the vendor says the current behavior is “good for 99% of cases”
- You can’t get a random row from a result set, and it won’t be fixed
Question 4: Who’s Watching the Watcher:
- Replication instrumentation tables stop working when you need them most
- Doing an outer join between instrumentation tables causes a crash
Question 5: Easy With Those Index Rebuilds:
- Concurrency during an index rebuild causes corruption
- Concurrency during an index rebuild causes corruption
Question 6: This Just In – New Virtualization Bugs from Last Week:
- Backups taken under certain versions of VMware are completely corrupt and unrecoverable (and here’s a better description that requires a Google login – if you get a login form, log in, and then click this link again)
- In virtualization, databases don’t always come online (scroll down to Issue 2)
After this little experiment, I dunno about you, but I’m not going to be so quick to poke fun at MongoDB.
6 Comments. Leave new
This is a wonderful blog post. It reminds me that I shouldn’t be so quick to make fun of other people’s code.
As Scott Hanselman once said: Everything is broken and no one cares:
http://www.hanselman.com/blog/EverythingsBrokenAndNobodysUpset.aspx
George – thanks sir!
It’s impossible to guess when you make up terms like “instrumentation tables.”
Adam – exactly, that’s the point. 😉
I have used both and I have to say they are both needed. I prefer Mongo for its ease of use and raw speed, but there are time with an RDBMS is a better fit. I appreciate your willingness to raise Mongo above being the butt of jokes ;).
Hello Brent,
Good Day. Long time follower…first time poster.. Having worked with MongoDB since 1.6 and SQL Server since 6.5 in very large enterprise environments, yes, both technologies are buggy. Nothing new here.
From a enterprise perspective, it is all about the management scale and the durability of your data system. SQL Server wins those two hands down. However, if you don’t believe me, MongoDB is web scale.