Live data from Hacker News

Does everyone hate MongoDB?

blog.serverdensity.com

121–130 of 159 posts

Re: Does everyone hate MongoDB?

#121
Does everyone hate infomercial salesmen that sell crap at 4am in the morning on TV? I don't know. Some do some don't.

Those that see through the lies are probably laughing at them, those that already bought the product and found out it is useless and doesn't live up to touted capabilities probably hate them.

Now don't get me wrong. In a practical way (disregarding ethical consideration) they took a risk. They quickly gained a lot of customers because their benchmarks looked very good.

So in a certain way people probably already forgot about the competitors at that time, because those competitors never made it so far. Now MongoDB is here years later and stories of hidden data corruption (and this is one of worst thing that could happen to a database) have started to emerge. Yes, by this time Mongo has the mind-share but now it is time to also pay the price for their design choice. They are probably still ahead.

Re: Does everyone hate MongoDB?

#122

Earlier quoted context omitted.

This is an excellent anecdote and one that others should pay attention to, regardless of the technology. Developers often have confirmation bias for their choices—it's a common human fault. We do it for purchases, life decisions, and software decisions alike. But it's important to watch out for it and be aware when you might be in the thick of your own bias. A friend of mine (let's call him "me") used Adobe Flex for…

You know what I do before making big decisions: Read. The. Documentation. Every single issue mentioned about MongoDB is in the documentation and pretty fundamental to how it works.

Exactly. ..and while I can appreciate the frustrations and tales of woe, I read the #*%#k out of the docs as well as build a number of prototypes before I go all in. I also read all the top questions on StackOverflow on that tech, as well as any blogs that mention it. Also: google "technology name" sucks to find out all the naysayers so you know what the downsides are from people in the field and make sure you are prepared to deal with them.

If you do the five minute quickstart guide, and read the feature list, and throw it into the mix, well...

Re: Does everyone hate MongoDB?

#123
post #43

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 like the concept of MongoDB. My main problem (which perhaps is not totally clear from my post, linked in the article) is that there are certain historical conventions about what a database should be. In particular, a database will not have the following default behavior: - return from a write call silently, when the data wasn't written and will not be. If you are going to break conventions on a multi-decade traditi…

Both are clearly stated in the documentation. Anyone that puts any DB into production without reading all the documentation beforehand is foolish and has no room to complain. If there are only "experimenting" then at what point will they read the documentation?

Re: Does everyone hate MongoDB?

#124
post #71

Earlier quoted context omitted.

The issue is not the limit; it's the silent failure. 32-bit Oracle doesn't do that, it tells you it can't extend the tablespace by raising an exception.

I'm not trying to defend Mongo, but the reason it doesn't tell you is because you didn't ask for it. If you care about the data (i.e. it's not a log or something that's not very important), you ought to always use "getLastError" to see if your data was actually stored or not (some drivers, like mongoose (for Node.js), just let you specify a simple flag ("safe:true") that does this automatically). A shitty default, no…

> If you care about the data (i.e. it's not a log or something that's not very important), you ought to always use "getLastError"

Wait they are promoting this as a database. It is right there in black on yellow "database". I don't know about you but I suspect most people expect databases to try their hardest to protect data. That means also having safe default. As in when I install it and put data in it, by default it should try hardest to make sure that data doesn't get corrupted. If it doesn't, it doesn't deserve to call itself a database.

> A shitty default, no doubt.

This is not a "oopsie" this is a deliberate lie and misinformation in order to produce fast benchmarks.

Re: Does everyone hate MongoDB?

#125
post #43

Earlier quoted context omitted.

I like the concept of MongoDB. My main problem (which perhaps is not totally clear from my post, linked in the article) is that there are certain historical conventions about what a database should be. In particular, a database will not have the following default behavior: - return from a write call silently, when the data wasn't written and will not be. If you are going to break conventions on a multi-decade traditi…

Both are clearly stated in the documentation. Anyone that puts any DB into production without reading all the documentation beforehand is foolish and has no room to complain. If there are only "experimenting" then at what point will they read the documentation?

If a default configuration of a _database_ product doesn't try its best to keep the data safe it shouldn't be just clearly stated in the documentation. It should be a flashing red banner on the front page and everytime its service process starts.

Re: Does everyone hate MongoDB?

#126
post #43

Earlier quoted context omitted.

I like the concept of MongoDB. My main problem (which perhaps is not totally clear from my post, linked in the article) is that there are certain historical conventions about what a database should be. In particular, a database will not have the following default behavior: - return from a write call silently, when the data wasn't written and will not be. If you are going to break conventions on a multi-decade traditi…

I haven't got a 32 bit version of Mongo, but people pointed out in the other thread that 32-bit version of mongod displays a little warning every time you start it saying it can handle only 2GB of data. Can you confirm this ( because I don't have the 32-bit version installed )? It still stinks, especially because it "silently failed after hitting the threshold", but I personally would feel better about 10gen if this…

Why are people running 32-bit OSes in 2012 again?

Re: Does everyone hate MongoDB?

#127
post #73
post #43

Earlier quoted context omitted.

I like the concept of MongoDB. My main problem (which perhaps is not totally clear from my post, linked in the article) is that there are certain historical conventions about what a database should be. In particular, a database will not have the following default behavior: - return from a write call silently, when the data wasn't written and will not be. If you are going to break conventions on a multi-decade traditi…

> In particular, a database will not have the following default behavior: > - return from a write call silently, when the data wasn't written and will not be There isn't some defined set of rules for how a database should operate. This attitude implies that an asynchronous database should never ever exist. If that's the case, how could I ever use a database for HTTP logging? I can't have every single HTTP request blo…

> This attitude implies that an asynchronous database should never ever exist.

Is a process that send data from socket > /dev/null a database as well then. Why not call that a database too?

> If that's the case, how could I ever use a database for HTTP logging?

In a normal database, you would possibly switch 'durable writes' and possibly 'time expiration' feature in the configuration file from the default OFF to ON.

Re: Does everyone hate MongoDB?

#128
post #31

My problems were to do with data-loss and unrecoverable corruption. I didn't write a blog-rant, but maybe I should have. I have since learned that I could have changed some configuration options to make MongoDB less likely to corrupt and/or lose data. I'm still wary though - the fact that the default configuration was prone to unrecoverable data loss suggests that any time I use MongoDB, I must carefully research the…

> I didn't write a blog-rant, but maybe I should have.

Yes do. Everytime I tell people how Mongo can lose their data and silently corrupt it. They say "ha, but you never experienced it, how do you know". Well, apart from explaining the way write work in theory I have the "There is this one guy on the internet,... let me find his blog". But I suspect there is more than one guy.

Re: Does everyone hate MongoDB?

#129

Earlier quoted context omitted.

It's not just that the defaults are dangerous, but that if you change the default, you give up much of the performance benefit of choosing Mongo in the first place.

Sorry but NOBODY is choosing MongoDB purely based on speed. If they were they would go with something like MemSQL, Redis etc.

They did it more when it first came around. Redis wasn't in the same category. It was usually compared to CouchDB, another one I don't remember, and then traditional SQL DBs. Couch for example looked much worse in benchmarks because it tried a bit harder to take care of users' data and didn't just fling it over the fence. But it mostly lost out because OMG benchmarks!

Re: Does everyone hate MongoDB?

#130
post #90

Earlier quoted context omitted.

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.

...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. That's funny because MySQL used to do exactly the same kind of marketing fifteen years ago: comparing itself to Oracle, "it's a thousand times faster" when it obviously didn't do one thousandth of what a RDBMS does. History repeats... and has…

I think the style is different. I blame the brogrammers.
Post reply on HN