Hacker News new | ask | show | jobs
by InclinedPlane 5340 days ago
So what's the preferred alternative noSQL wise?

MongoDB is flaky. CouchDB is a maintainability nightmare, so I hear.

Riak? Cassandra? Or does everything else have some other equally huge down-side?

2 comments

They all have their warts. For every story like this, there are petabyte deployments of your favorite datastore that work fine.

For every X sucks article, ther is Y is awesome.

In the nosql world the only way to choose is around the problems they solve... They are each specializing and optimizing for certain nitches. mongo is the most mysql-esque, but dosnt do things that redis, couch or cassandra do that you may need.

There is no clear winner (fortunately or unfortunately dependng on what you were hoping for)

Have there been any new entrants in the last few years? Seems like innovation has stalled a bit and stabilization / improvement hasn't caught up yet.
Good question -- as far as new, mature NoSQL solutions on the scene, I just became aware of OrientDB which sort of baffles me with it's functionality. It looks like this amazingly functional blend of MySQL and NoSQL: http://www.orientechnologies.com/orient-db.htm

Other than that, I actually think these solutions have been stabilizing exactly because of what you say: innovation is slowing down/stalling.

1-3 years ago the cool thing to do was store data different ways, now that we have all these solutions that people are ready to use in production, they are demanding more and more secure/safe functionality from them.

In the last year Redis added the append log and flushing to disk. CouchDB rewrote the replication code in the last release and has always had a wonderfully redundant and safe file mutation model (can can copy the DB file while in use and still get a safe snapshot) and MongoDB has been responding aggressively to crashes and corruption since 1.7 after all the single-server durability fiasco around 1.5/6 that had everyone up in arms.

These data stores are really brilliant pieces of code with some wonderful deployments to prove their worth.

There is still work to be done, sure, but I am not aware of glaring deficiencies in these systems like I used to be a year or more ago where you could point at "Oh, the XYZ bug might get you" -- that just doesn't seem to be happening anymore.

I don't know a whole hell of a lot about Cassandra (I am one of the few humans that still doesn't grok the data model easily) but I remember data recovery bugs from a year ago in the issue tracker that all got knocked out to the point that 1.x is looking like a really awesome release for them.

At this point, I think it just depends on what you need.

DBMS can't lose data. This is supposed to be the first commandment of any storage system leaving performance, CAP, and all other considerations out of this.
Yuuuup. If data gets into your DBMS then it can't get lost. Period. That level of fuckup is simply unacceptable.
Orient looks cool. Thanks for the tip. It doesn't look like it will support any other languages though (like Python), which stinks.
Bulbs (http://bulbflow.com) is a Python persistence framework that supports OrientDB, Neo4j, Dex, and any Blueprints-enabled graph DB.
Cool, thanks.
The problem with Cassandra is you never believe the responses to your queries..... until it is too late.....
Uhh, I didn't realize that was a "thing" with Cassandra, is there a bug # to track for any issues specifically or are you saying that it has a history of reporting "Okey Dokey!" to a PUT when in reality it just exploded and died?

I've not messed with Cassandra in production so I haven't seen such a thing yet.

I should have said "until it is too late.... and you have gone down in flames due to a trojan horse...."

Alternatively "I understand Cassandra is a Trojan. Can anyone confirm this?"

Nobody reads Homer anymore.... Or even Virgil.....
Many are moving to Neo4j, including some of the major social networks.
Ahh good catch, I forgot about Neo4j. I'd like to see some non-graph deployments on it and see how it performs. From what I've seen with social/networked data models it looks very compelling.

Excited to see that DB get more and more traction.