Live data from Hacker News

Does everyone hate MongoDB?

blog.serverdensity.com

151–159 of 159 posts

Re: Does everyone hate MongoDB?

#151
post #138

Earlier quoted context omitted.

I didn't say you didn't learn anything. But you seem to be making excuses for why you shouldn't know some very basic things about MongoDB. It uses a memory-mapped file. How can that be larger than 2GB in 32-bit system? It has async writes...this is pretty well documented by 10gen and is also something noted by a lot of tutorials, blog articles etc. You should have known something this basic about a database so import…

Come on, database (or any other system) that just silently fails to add new data? 2GB limit is clearly mentioned in the logs, that's fine, but anyone that sees this would expect that DB would start "screaming" loudly wherever it can (logs, response to the user on EVERY communication with the server, during any select,insert and others) that it reached this limit.

Async writes are async, so there cannot be a response to the user on failure unless you explicitly check(getLastError). This is very well documented behavior.

Re: Does everyone hate MongoDB?

#152

I think a lot of the "hating" is a side effect of MongoDB being consistently oversold in terms of its capabilities and architecture. Many people who are not experts on databases discover this the hard way later. If the claims about it were qualified a little better and the limitations acknowledged more openly by its proponents it would help to mitigate this outcome. I am indifferent to MongoDB but I do caution people…

I agree. In some regards it is "oversold", but I also think part of that is from a lot of the marketing efforts we've seen with newer databases like Mongo and even Riak. I am not saying those are bad, but with more established DBs like MySQL and PostgreSQL, you never really saw the same kind of marketing efforts towards developers, startups, etc. It is kind of a newer concept.

I was going to say I remember MySQL doing pretty much the same thing back in the 3.x days. Ok, a different style (I don't remember them comparing themselves to Oracle, but I do remember comments like "who needs foreign keys anyway?").

Actually I think that MySQL is essentially the fore-runner of NoSQL. People who have cut their teeth using MySQL as a single-app persistence store or were trying to code to lowest common denominator in order to be portable now see benefits in ditching the idea of a shared database altogether because, well, they never used a shared database.

Re: Does everyone hate MongoDB?

#153
post #49

I had to use it a few years back, for some data reporting that had been added to a project after the fact, and... I found it to be awful, because the task was very much a join-heavy operation. Something that would have been a breeze with Postgres, or even Mysql got turned into this big, ugly, heavy, slow process. I was not impressed, especially since the quantity of data in the DB was also something that could have v…

>" I found it to be awful, because the task was very much a join-heavy operation. Something that would have been a breeze with Postgres, or even Mysql got turned into this big, ugly, heavy, slow process. "

If you can't be assured of structure of data input, you can't reliably and gracefully transform that data on output. That's a pretty fundamental tradeoff between SQL and NoSQL (and historically between PostgreSQL and MySQL too).

Re: Does everyone hate MongoDB?

#154

This is a nice summary of many of the problems with MongoDB, and a good set of fumbled excuses as to why they might not actually be problems. Most of the answers boil down to "Well, yeah, but if you know how to [long complicated solution here], then it's not a problem," while simultaneously admitting that the problem is present and that the solution (if it exists) is extremely difficult and requires specialized knowl…

Interestingly I just wrote an article on dzone (published in their NoSQL zone ;-) ) about building encapsulated data models on PostgreSQL. I discuss a bunch of ways of doing this. I totally agree with the idea that one should encapsulate data in application, but that's what an RDBMS is for if you know how to use it.

My approaches to db interfaces have been greatly inspired by REST and SOAP. The thing is giving up on the RDBMS is usually the wrong choice. If using NoSQL, usually it is best as an adjunct to the traditional RDBMS (particularly for pre- and post- processing).

Re: Does everyone hate MongoDB?

#155
post #24

You mean the mug, the tshirt or the database? The mug, and tshirt have been quite good. Haven't tried the db.

You raise a valid point. If this essay by pg holds true, you might be better off sticking to PostgreSQL (the other pg): http://paulgraham.com/javacover.html

Just finished reading it for first time. Clearly pg was wrong. It now reads like one of those classic wrong predictions.

Re: Does everyone hate MongoDB?

#156
post #91

I've used mongodb for a recent prototype. It was brilliant, I iterated through the data model as I coded. However, I am now very aware that I have an implicit schema in my code that will be harder to understand in 6 months than a database schema. I traded fantastic flexibility in initial development against easily maintained longevity. I suspect I will move to something more relational but have also taken on the need…

I traded fantastic flexibility in initial development against easily maintained longevity.

Great quote, btw, and spot on.

Re: Does everyone hate MongoDB?

#157
post #23
post #8

Does everyone hate MongoDB? - 25 Sept 2012 Headline Problem: Too many people are ranting about MongoDB. Mistake: Too few data points. Overly defensive of MongoDB. Comments: You should probably learn more about Riak. The "From MongoDB to Riak" is light on details but isn't really hand-waving. The author is saying that having a masterless database results in less fretting. http://wiki.basho.com/Riak-Compared-to-MongoDB…

Now that Couchbase Server 2.0 is beta, it's a reliable alternative to MongoDB. Same JSON goodness, different set of user stories. (hint: less rants). Get the beta download here: http://www.couchbase.com/couchbase-server/beta

Could you at least put a disclaimer in your spam that says you're a cofounder of Couchbase?

Re: Does everyone hate MongoDB?

#158

Earlier quoted context omitted.

> Once you deploy then things will change less frequently so the real benefit is when you do have to change something, you're not running a big ALTER statement. Instead, you're writing a bunch of code to deal with data that may be in the old format, or may be in the new format, or may be in the new-new format. I don't see that as an improvement.

In practice, you're writing code that has to deal with records that were updated by versions 3, 5, and 7 of your code but not 4 or 6. After a few years you can be sure somebody got it wrong at some point, and now you have records in a few out of the 2^n states where not even the developers can anticipate the system's behavior. The fix is to make ALTER incremental and less painful, not to stop writing down and checkin…

And both MySQL and PostgreSQL have put in work to make ALTER less painful by reducing the situations where a full table rewrite is necessary. In PostgreSQL you can both add and remove columns without the table being rewritten as long as you do not set a default value. You can also increase the lengths of varchars without any rewrite.

Re: Does everyone hate MongoDB?

#159

Earlier quoted context omitted.

Yes that is true for me, at least using the 10g binaries for Linux (not the Ubuntu package). You get this warning everytime you start the engine. You'd probably have to look at your logs to see it. It is also referenced in the installation documentation. Look guys, MongoDB uses a memory-mapped file. How can it be larger than 2GB on a 32-bit system? There should not need to be "warnings everywhere".

I think expecting end-users to know or care about the implementation detail of a memory-mapped file is even sillier than all the other silly expectations floating around this thread.

What do you expect end-users to know about oracle or any kind of database tuning?
Post reply on HN