4 ms·
There is something to be said for well architected software independent of any features that one may find attractive in it. For databases this is a big problem
by cpleppert 14y ago
There is something to be said for well architected software independent of any features that one may find attractive in it. For databases this is a big problem as you often don't find out about technical problems until you are already committed to the technology and are trying to scale it.
The same thing happened with MySQL and now it looks like it is happening with MongoDB as well. Mongo has so many corner cases and although I have never scaled it up in production the amount of moving pieces and the clear lack of attention paid to distributed programming literature in the design doesn't inspire a lot of confidence.
Technical problems with MongoDB are being explained away as features in the same way MySQL did. Why does Mongo MMAP its datafiles?? So the cache stays warm!!! Why doesn't MySQL have transactions? No one needs transactions, just lock the table !!
If you didn't consider these cases you might think that Mongo sounded pretty good. I don't fault 10gen for pushing this hard and taking advantage of the perception that NoSQL is a more modern technology. I just can't believe there isn't something better that does what Mongo does.
- lucian1900 14y agoRethinkDB looks to be a better Mongo. It even does MVCC, the lack of which I certainly felt with Mongo (can't do analytics queries on your data or build indexes without DoS-ing your db).
- coffeemug 14y agoWe also don't mmap the data files, though it's much more relevant to the internal architecture than user facing features :)