To say 'preferred NoSQL' is far too generic, it is as if users have an option between SQL or NoSQL. I would say that MongoDB is becoming the preferred document-based data store - but that has nothing to do with key value, graph, column-oriented, etc. stores that make up what people refer to as 'NoSQL' (which is a loaded term)
As soon as they feature document level locking (maybe MVCC), I'll happily use it. But locking all databases when a write is occurring is a bit of a downer for large apps that require concurrency.
"MongoDB supports atomic operations on single documents. MongoDB does not support traditional locking and complex transactions for a number of reasons. . ."
What made you think that it was "locking all databases when a write is occurring"?
I and many people are using mongodb just fine with no data-loss and way more data and way more queries per second than you. If you are going to make big accusations like this you need to back them up with a test-case to reproduce your error. Otherwise it's just yet another useless rant/bug report. I too could write a "cassandra lost my data" blog post with no proof whatsoever, wouldn't help. Also the 32bits argument is ridiculous, it is not supposed to store more than 2geebees anyway, so don't use it for that.
You can see replies by hitting the "threads" link at the top of the page.
Reasons (from my understanding) that you had a bad experience:
1. You used a development, unstable version of software in production.
2. 32 bit Mongo cannot store more than 2GB of data, this is a very public, known admission.
The reason that 'nobody seems to like your opinion' is that your post got real famous, and while mistakes happen, the internet was in a bit of a frenzy at the time over the whole NoSQL thing, and so you became sort of a poster child for various sides that people had chosen. Sucks, but it happens. I had a similar experience with my first blog post ever, so I feel your pain...
Replica sets look awesome. Can't wait to get them set up in production. Replacing a master/slave setup with this means automatic failover.
Looking forward to single server durability in the next one (1.8). Should enable me to convince more clients to add mongo as part of the deployment stack.
I've also got a master/slave setup and am looking forward to replica sets.
It's great to see sharding is production ready. It's now there when I need it.
I installed 1.6 on my laptop today, but I will wait a week before starting to update servers. Anyway, I have never had data collections large enough to need sharding, but replica sets look like a much better alternative to frequent snapshots to S3.
A year ago I was equally enthusiastic about MongoDB, CouchDB, and Cassandra. However, at least for the modest scale work that I do I don't really need Cassandra, and MongoDB is so easy to work with. I still really like CouchDB but I have never had a customer request its use, so my experience is limited to just using it for my own stuff.
Definitely getting huMongous - looks like it's used by justin.tv and foursquare - good enough for me.
By the way, there is a MongoDB shell on the homepage for tryruby.org like mini tutorials => http://www.mongodb.org/ Convinced me enough to get interested and download mongoid as well :-)
Hmm, now all there's left is an online hosting solution like Couch.io
I was excited to see a new movement in database schemes that provide a different way of storing data outside a relational database model however a couple things bother me. Firstly calling it nosql, its just complete disrespect of sql and relational databases, could there not have been a more mature response and have it termed as something relevant?
Secondly what scares me and I find hilarious is people who so quickly jump onto this movement, moving the entirety of their critical data without understanding the potential downfalls, such as data loss with no warning. As a key value store for non critical data, this kind of thing is brilliant, and data loss can be managed, maybe not tolerated in a high throughput environment where "cache misses" are a concern but otherwise yea its great. Still look at facebook, twitter, friendfeed, who are all still using mysql and scaling out in their own way.
i dont get why do they still stick with agpl. there are a lot more _companies_ built on products with licenses other than agpl, such as, wildly popular apache projects. even microsoft releasing code with apache license but not mongodb guys!
There are successful companies built around all sorts of licensing schemes, but that doesn't mean that you are in a position to say what's best for 10gen's specific situation.
Also, all of the official client libraries for mongo are Apache licensed, it's only the core server that is AGPL (which means that you can use mongo in closed source applications - only if you make changes to the actual core database do you have to give those changes back to the community, and even then you still don't have to open source the rest of your application).
[+] [-] kylemathews|15 years ago|reply
examiner.com is switching to Drupal soonish and has funded most of the work to write the Drupal/MongoDB integration.
[+] [-] ddorian|15 years ago|reply
[deleted]
[+] [-] barmstrong|15 years ago|reply
As an admittedly rough measure, check out the number of "watchers" on github for each project's leading plugin:
1106 - MongoMapper http://github.com/jnunemaker/mongomapper
536 - CouchREST http://github.com/jchris/couchrest
312 - Cassandra http://github.com/fauna/cassandra
I've only built one rails app with nosql in it, but at first glance at least Mongo seemed the most fully baked of the group.
[+] [-] ruperp|15 years ago|reply
695 - Mongoid http://github.com/durran/mongoid
seems to be the Rails/Mongo project to watch. They got a slick looking homepage too: http://mongoid.org
Hoping to try using it on my next project.
[+] [-] bl4k|15 years ago|reply
[+] [-] unknown|15 years ago|reply
[deleted]
[+] [-] mikebo|15 years ago|reply
[+] [-] gaiusparx|15 years ago|reply
[+] [-] j2d2|15 years ago|reply
[+] [-] rb2k_|15 years ago|reply
[+] [-] masomenos|15 years ago|reply
"MongoDB supports atomic operations on single documents. MongoDB does not support traditional locking and complex transactions for a number of reasons. . ."
What made you think that it was "locking all databases when a write is occurring"?
[+] [-] oozcitak|15 years ago|reply
[+] [-] StavrosK|15 years ago|reply
http://www.korokithakis.net/node/116 http://www.korokithakis.net/node/119
I would love to answer questions if I could figure out how to easily see my replies on HN :/
[+] [-] masomenos|15 years ago|reply
[+] [-] thibaut_barrere|15 years ago|reply
Are you experiencing data loss with 1.4.0 ?
[+] [-] _pius|15 years ago|reply
[+] [-] patrickaljord|15 years ago|reply
[+] [-] steveklabnik|15 years ago|reply
Reasons (from my understanding) that you had a bad experience:
The reason that 'nobody seems to like your opinion' is that your post got real famous, and while mistakes happen, the internet was in a bit of a frenzy at the time over the whole NoSQL thing, and so you became sort of a poster child for various sides that people had chosen. Sucks, but it happens. I had a similar experience with my first blog post ever, so I feel your pain...[+] [-] zefhous|15 years ago|reply
http://jira.mongodb.org/browse/SERVER-380
[+] [-] mumrah|15 years ago|reply
That said, if you need powerful "full-text searching" I would look to something like Lucene or Xapian.
[+] [-] thibaut_barrere|15 years ago|reply
http://github.com/glamkit/mongo-search
[+] [-] jpcx01|15 years ago|reply
Looking forward to single server durability in the next one (1.8). Should enable me to convince more clients to add mongo as part of the deployment stack.
[+] [-] wmwong|15 years ago|reply
[+] [-] hdeshev|15 years ago|reply
[+] [-] mark_l_watson|15 years ago|reply
A year ago I was equally enthusiastic about MongoDB, CouchDB, and Cassandra. However, at least for the modest scale work that I do I don't really need Cassandra, and MongoDB is so easy to work with. I still really like CouchDB but I have never had a customer request its use, so my experience is limited to just using it for my own stuff.
[+] [-] zaph0d|15 years ago|reply
[+] [-] ritonlajoie|15 years ago|reply
[+] [-] samratjp|15 years ago|reply
Hmm, now all there's left is an online hosting solution like Couch.io
[+] [-] kchodorow|15 years ago|reply
[+] [-] detst|15 years ago|reply
[+] [-] uggedal|15 years ago|reply
[+] [-] chuhnk|15 years ago|reply
Secondly what scares me and I find hilarious is people who so quickly jump onto this movement, moving the entirety of their critical data without understanding the potential downfalls, such as data loss with no warning. As a key value store for non critical data, this kind of thing is brilliant, and data loss can be managed, maybe not tolerated in a high throughput environment where "cache misses" are a concern but otherwise yea its great. Still look at facebook, twitter, friendfeed, who are all still using mysql and scaling out in their own way.
[+] [-] lelele|15 years ago|reply
[+] [-] leej|15 years ago|reply
[+] [-] arst|15 years ago|reply
Also, all of the official client libraries for mongo are Apache licensed, it's only the core server that is AGPL (which means that you can use mongo in closed source applications - only if you make changes to the actual core database do you have to give those changes back to the community, and even then you still don't have to open source the rest of your application).