11 ms·
It's Time to Drop the "F" Bomb - or "Lies, Damn Lies, and NoSQL."
- regularfry 15y agoWas this targeted at anyone in particular, or is it a general rant (deserved or not) at the state at the world?
- ethangunderson 15y agoIt was a thinly veiled bash on Mongo.
- tptacek 15y agoIs there a backstory to Mongo vs. Riak? I've noticed that there's definitely a "Mongo user" and a "Riak user" and they tend not to agree about stuff.
- ethangunderson 15y agoBasho has always had an issue with the way Mogno was architected and marketed, and they have no issue with letting people know. (several blog posts, killdashnine parties) I actually like both Mongo and Riak. I think they both solve a different problem set, and can actually complement each other in a polyglot persistence setup. It's a shame that there has to be so much negativity between them, because at the end of the day, this type of whiny blog post doesn't really help anyone.
- batasrki 15y agoTo be honest, Mongo's execs have done pretty much the same thing. As I said in another comment, the Changelog episode on Mongo was very illuminating with regards to the marketing tactics of 10gen. I do like both, as well.
- ethangunderson 15y agoIf they're doing the same thing, that's just as shitty. But I've been meaning to listen to that episode of the Changelog for awhile now, so thanks for the reminder!
- mattyb 15y agoIs this the episode? http://thechangelog.com/post/3742814720/episode-0-5-1-mongodb-nosql-and-web-scale-with-eliot-hor http://thechangelog.com/post/3742814720/episode-0-5-1-mongod...
- batasrki 15y agoYep, that's the one
- trustfundbaby 15y agoI hate subliminal attacks like these ... if you have a problem with someone, come out and say it, don't let me have to figure out what or who you're getting at. And with regards to Mongo ... they've since added a feature that allows 'safe' writes to your database (confirms the data is written before returning a response) ... so what's the rant about?
- batasrki 15y agoThe 'safe' feature isn't on by default, yet. Also, the benchmarks 10gen publishes are based on default setup, so basically, Mongo writes to RAM, therefore it's fast. I love Mongo and am using it in a few apps, but their marketing does blow, I admit. Also, Eliot Horowitz came out and bashed on Riak's eventual consistency promise by basically misleading devs into thinking that writing to MongoDB will always result in 'full consistency'. Listen to the ChangeLog episode on Mongo to hear that.
- kchodorow 15y ago10gen doesn't publish any benchmarks. See http://www.mongodb.org/display/DOCS/Benchmarks http://www.mongodb.org/display/DOCS/Benchmarks for the official position. I transcribed the MongoDB vs. Riak part of the Changelog webcast (available at http://thechangelog.com/post/3742814720/episode-0-5-1-mongodb-nosql-and-web-scale-with-eliot-hor http://thechangelog.com/post/3742814720/episode-0-5-1-mongod...): ------------------------ Riak and all the dynamo-style databases are really distributed key/value stores and I think, you know, I've never used Riak in production, but I have no reason not to believe it's not a very good, highly scalable distributed key/value store. The difference between something like Riak and Mongo is that Mongo tries to solve a more generic problem. A couple of key points: one is consistency. Mongo is fully consistent, and all dynamo implementations are eventually consistent and for a lot of developers and a lot of applications, eventual consistency just is not an option. So I think for the default data store for a web site, you need something that's fully consistent. The other major difference is just data model and query-ability and being able to manipulate data. So for example with Mongo you can index on any fields you want, you can have compound indexes, you can sort, you know, all the same types of queries you do with a relational database work with Mongo. In addition, you can update individual fields, you can increment counters, you can do a lot of the same kinds of update operations you would do with a relational database. It maps much closer to a relational database than to a key/value store. Key/value stores are great if you've got billions of keys and you need to store them, they'll work very well, but if you need to replace a relational database with something that is pretty feature-comparable, they're not designed to do that. ----------------------- It starts at minute 17. edited: formatting.
- ericflo 15y agoNot just Mongo though, there are a lot of NoSQL companies out there right now whose marketing claims the impossible.
- sophacles 15y agoIt's kind of sad too. There are lots of use cases where I want fast datastores, and you know what, if the database goes down, who cares? For example, I do lots of experiment logging to a mongodb. If the power goes out, and the data is lost who cares? The data was no longer valid or useful -- but if I slow down my writes for 'safety' I will be causing problems by introducing delay in ways that could cause conflict.
- ericflo 15y agoThis post is fantastic! I couldn't agree more with its contents. Sorry that this comment is vapid, but I wanted to do something more than just click the upvote button.
- VladRussian 15y agoJust a piece of self-glorification. I brushed my teeth, it is hard - all 32 teeths, complicated distributed problem, can't do them all at once consistently, yet i still was able to do it.
- br1 15y agoIt's hard for the rest of the world but incremental for them... Let's see how they turn ego into code.
- edoloughlin 15y agoIt reads like it was written by a marketing person.
- jhugg 15y agoI disagree. It reads like an engineer who is frustrated that his/her tech is getting out-businessed (perhaps in a slimy way). Engineers generally want to live in a world where the best tech wins, but in the end, we go home to our betamax players and wonder why we can't rent any good movies for them.
- bitdiddle 15y ago"The world is full of wicked men Wyatt" -- Gene Hackman in Wyatt Earp
- mmalone 15y agoCredit where credit's due, the 10gen and MongoDB guys have done a great job convincing developers to adopt their product despite the existence of technically superior alternatives. I guess that's what happens when a bunch of ex-DoubleClick execs start a database company.
- aguynamedben 15y agojust sayin'...
- mnutt 15y ago"ex-DoubleClick exec" gives the image of some kind of ad executive or something, which is not what Dwight is. http://www.10gen.com/video/mongosv2010/replication http://www.10gen.com/video/mongosv2010/replication
- jhugg 15y agoEven if it's hard to disagree with anything specific in the post, who does this tone appeal to? Is the author selling or venting?
- arihant 15y agoWe performed our own crash testing for a Riak and about a million other databases, Riak and MySQL with InnoDB were the only cases scoring more than 5 out of 10. I think the problem with NoSQL is that they are targeting the wrong people - the lazy people. One of the DBs we reviewed (can't remember which) did not have single datacentre durability, lost like 80% data while crash during updating table contents and was boasting some geo-coordinate built-in datatype on their website. Its the priorities plague. Is built-in geo more important than data? Why do NoSQL databases have to be all distributed beyond sharding? I think because thats what people wrongly perceive out of them. Google, LinkedIn all use NoSQL which is distributed, so if a NoSQL DB doesn't do it, its a shame. Thats the root of misjudgment I believe. Every DB, NoSQL or not, needs to have a place. One size fits all is what will kill NoSQL, whether enforced by engineering or marketing. Thats why I think marketing "lie". CouchDB, Riak and Redis are only few exceptions I know of which seemed to have a vision and stuck to it.
- tuna 15y agowait until you fill your mysql + innodb with real data, have a crash and have to perform a check to get it back online. stick with riak.
- spudlyo 15y agoYou're confusing InnoDB with MyISAM. InnoDB does redo log recovery like all grown up databases. MyISAM requires a lengthy fsck type operation.
- tuna 15y agoyou are confusing real world with a comment on hackernews. try and do a full recovery on innodb with real data and get back so uncle tuna can hold you tight and promise that will never happen again. hint: corrupted tables crashing mysql processes and you having to start it with innodb_recovery 4 for ro, dumping the table, reapplying it back. -- Mel Gibson's surgeon on "Payback"
- benblack 15y agoTo some commenters: the C in CAP and the C in ACID are not the same thing. If that is not clear to you, it is unlikely the database you develop will include correct implementations of core concepts. Knowledge is power. Peace and love to the human family. - Lil' B
- mshneider718 15y agoGood point...CAP and ACID are not overlapping concepts - in fact, you kinda have to throw out ACID rules when you create a Dynamo-inspired data store
- roder 15y agoOf course the opposite of ACID is BASE: http://queue.acm.org/detail.cfm?id=1394128 http://queue.acm.org/detail.cfm?id=1394128
- haberman 15y ago> To some commenters: the C in CAP and the C in ACID are not the same thing. This is an interesting point, but I wonder if they are really that different. Even NoSQL systems support atomic updates and sequential consistency at some granularity (like a single key, document, etc.) I wonder if it's really so inaccurate to think of NoSQL data stores as a set of tiny ACID databases, one for each key/document/etc.
- benblack 15y agoThey really are that different, and I hear 10gen is hiring. Increase the peace. - Lil' B
- haberman 15y agoThat's deep man, but I posed an actual question. BigTable (which I use daily and have extensive experience with) offers atomic and transactional updates at the row level. It uses Paxos to guarantee that at most one process at a time owns each row and can mutate it. That process keeps a sequential log that imposes an absolute order over updates to that row. So it appears to me that despite being a NoSQL database, BigTable rows offer both ACID and the "C" of CAP. In fact, I bet it would be possible to implement a MySQL backend that uses a BigTable row as its storage. I get strlen's point that C != C (it's more analogous to A/I), but my real point is that NoSQL (at least in the case of BigTable) doesn't appear to be fundamentally different than SQL in the offered guarantees, but rather in the granularity at which those guarantees are offered. NoSQL just takes the traditional one-single-ACID-entity model (a SQL database) and breaks it apart into lots of little ACID entities called rows/keys/documents/etc. CAP of course applies to both SQL and NoSQL equally.
- coffeemug 15y agoYou can't escape the laws of physics, but if you know how to get physics on your side you can do things that at first glance appear impossible. See: human flight.
- deleted 15y ago[deleted]
- strlen 15y agoPractical, heavier than air flight was made possible due to internal combustion engines. It's also still less practical and more expensive for some applications e.g., cargo than other options. Practical, low-latency distributed databases based on "invoke consensus protocol on every commit to the log" would be made possible (on limited size local networks) when networking gear with performance exceeding 10GigE/Infiniband becomes "commodity". Even then, it will still be impractical and too expensive for some scenarios. At the present time, the fact that I said "invoke consensus on every commit to the log" and "low latency" in the same sentence is making distributed systems engineers cringe (I would _not_ advocate building such a system). The fact that I said "Infiniband" and commodity in the same sentence is also making systems administrators and DBAs cringe.
- tuna 15y agoAlso, a word about Consistency: “There’ll be a time when all people are alike.” “Which is precisely the ideal society. No mysteries, no romantics, no discussions, no persecution because there’s no one to persecute. When all have received the same conditioning, it will be like…” “Insects.” “Who have existed longer than ourselves and will outlast our race by many millennia.” “Is existence everything? “There’s nothing else.”