Live data from Hacker News

Does everyone hate MongoDB?

blog.serverdensity.com

61–70 of 159 posts

Re: Does everyone hate MongoDB?

#61
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…

> 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 little story is true (i.e. they warn you about it not only in downloads page, but every time you run mongod).

Just as a data point, I installed MongoDB on 32-bit Ubuntu 12.04 from the Ubuntu repo. At no point during install or service startup does it say anything.

Installing from source may be different.

Re: Does everyone hate MongoDB?

#62
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…

Just installed it on ubuntu 32-bit (apt-get install mongodb). I now have a 32-bit mongodb process running. Minus all of the noise from apt about setting up xulrunner and the 101(!!!) other dependent packages, here's the entirety of the startup messages I see:

    mongodb start/running, process 13660

Re: Does everyone hate MongoDB?

#63
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

We're running 1.8.x to great success. Currently pondering if we want to test with 2.0 or just wait to start testing until 2.0 final is released.

Re: Does everyone hate MongoDB?

#64
It's not about "hating", or at least I hope it's not.

NoSQL, in many ways with MongoDB leading the charge, came on to the scene very quickly with a lot of support on HN. When action outpaces education, then it's natural to expect education to play catch-up for a while, which is what's happening now.

Some of it is education by 10gen, some by users who made mistakes (the leading cause of education), and some by traditional database people who want to highlight the lessons learned that might have been missed by 10gen or mongo users.

Generalizing all of this as "hate" is not productive.

Re: Does everyone hate MongoDB?

#65
You beat me into writing this =) Great article, btw!

It seems to me that there are three camps of people when it comes to dbs - (1) The "I hate anything new" camp, (2) The "I hate anything old" camp, and finally (3) The "I will pick the best tool suited to my needs"

Those from camp (1) are the ones who hate anything that IS NOT relational or sql. The mongodb bashers would fall in this camp.

Those from camp (2) are those who hate that IS relational or sql. The "web-scale" people would flal in this camp.

Those from camp (3) are the silent majority who do their independent research, pick the right type of DB for their job, and live life happily.

For my startup (Semantics3), we deal primarily with JSON strings (which have no fixed structure). We use MongoDB because a really good use case for it is to just store JSON documents with a unique id. We only run simple queries on it - basically existential (does an id exist) or count.

We are aware that it's query performance is not as fast as that of a relational db. So we then index that data to ElasticSearch and run our advanced queries through that. We are really happy with our current system and it has been working great.

If we had some sort of "relational" data with a fixed structure I sure has hell would have picked MySQL or PostgreSQL and used Sphinx on it for indexing.

Peace.

Re: Does everyone hate MongoDB?

#66
post #34

Earlier quoted context omitted.

Flexibility is useful in development. 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.

> 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 checking your schema.

Re: Does everyone hate MongoDB?

#67
> The way MongoDB yielded was improved in 2.0 in a very significant way and this was taken further in 2.2 with the complete removal of the global lock as a step towards more granular concurrency.

Yes with 2.2, write locks have improved drastically. However, I'm still waiting until you can get to the point of not having to lock down whole collections (the near equivalent to a table - with caveats) as opposed to a document within the collection (the closest thing that you can call a record in db terms - with tons of caveats).

This being said, Mongodb does have really really awesome documentation and it is the right way to go for many applications and developers.

Re: Does everyone hate MongoDB?

#68

You beat me into writing this =) Great article, btw! It seems to me that there are three camps of people when it comes to dbs - (1) The "I hate anything new" camp, (2) The "I hate anything old" camp, and finally (3) The "I will pick the best tool suited to my needs" Those from camp (1) are the ones who hate anything that IS NOT relational or sql. The mongodb bashers would fall in this camp. Those from camp (2) are th…

Hmm, why the downvotes?

Re: Does everyone hate MongoDB?

#69
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…

This is true, in the Ubuntu packages this is printed to the default log at /var/log/mongodb/mongodb.log. It is also abundantly clear from the documentation. I struggle to understand how one could deploy a new datastore in production without reading the "getting started" level of documentation or looking in the log at some point.

The 2GB 32-bit limit of MongoDB seems like a complete non-issue to me.

  Wed Sep 19 17:29:21 [initandlisten] MongoDB starting : pid=3765 port=27017 dbpath=/var/lib/mongodb 32-bit host=deepthought
  Wed Sep 19 17:29:21 [initandlisten] 
  Wed Sep 19 17:29:21 [initandlisten] ** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data
  Wed Sep 19 17:29:21 [initandlisten] **       see http://blog.mongodb.org/post/137788967/32-bit-limitations
  Wed Sep 19 17:29:21 [initandlisten] **       with --journal, the limit is lower
  Wed Sep 19 17:29:21 [initandlisten] 
  Wed Sep 19 17:29:21 [initandlisten] db version v2.2.0, pdfile version 4.5
  Wed Sep 19 17:29:21 [initandlisten] git version: f5e83eae9cfbec7fb7a071321928f00d1b0c5207
  Wed Sep 19 17:29:21 [initandlisten] build info: Linux domU-12-31-39-01-70-B4 2.6.21.7-2.fc8xen #1 SMP Fri Feb 15 12:39:36 EST 2008 i686 BOOST_LIB_VERSION=1_49
  Wed Sep 19 17:29:21 [initandlisten] options: { config: "/etc/  mongodb.conf", dbpath: "/var/lib/mongodb", journal: "true", logappend: "true", logpath: "/var/log/mongodb/mongodb.log" }
  Wed Sep 19 17:29:21 [initandlisten] journal dir=/var/lib/mongodb/journal
  Wed Sep 19 17:29:21 [initandlisten] recover : no journal files present, no recovery needed
  Wed Sep 19 17:29:21 [initandlisten] waiting for connections on port 27017
  Wed Sep 19 17:29:21 [websvr] admin web console waiting for connections on port 28017

Re: Does everyone hate MongoDB?

#70

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 think a lot of the "hating" is a side effect of MongoDB being consistently oversold in terms of its capabilities

A large part of that is that 10gen are much better at marketing than they are at tech. For example, they like to pitch against the Oracle database, and for certain use cases, MongoDB is better than Oracle RDBMS. But if you were to take those cases to Oracle, they would say well don't use the database for that, use our other product Coherence (which was Tangosol before they bought them). And Coherence spanks MongoDB in every possible way. You could write a bestselling novel about it, 50 Shards Of Grey.

Another example here http://news.ycombinator.com/item?id=4533760

And if you hate Oracle, there are a bunch of free things that do what MongoDB does a hell of a lot better. Why waste time with its cheesy MapReduce when you could have ICE http://www.zeroc.com/overview.html for example?

Post reply on HN