News for hackers. Stuff that matters.
Re:My Thoughts on NoSQL by jokull on Tuesday July 21, 2009 @11:06AM (#716349)
Some shaky statements in here. CouchDB should not be compared to these. Description of Cassandra is misleading.

He disses Tokyo Cabinet table feature which is in fact _not_ like typical tabular data but behaves more like a second level hash (hash of hashes) — which he raves about as an awesome feature of other storages.

"None of these really set CouchDB apart, because you could just encode JSON data and store it in Tokyo Cabinet, you can maintain your own indexes of data fairly easily, and you can build a simple REST API in a matter of days, if not hours."

Except you'd be missing the querying features in Tokyo Cabinet. He also misses the fact that Cabinet has real master-to-master replication.

Redis' batch-disk-dumping-from-memory strategy is interesting and theoretically allows it memcached speed with persistance. I'll be looking out for this one.

Finally the statement on using each one for a different use case is crazy. Feature overlap between Redis, Cassandra and Tokyo C/T is too big.

Re:My Thoughts on NoSQL by ericflo on Tuesday July 21, 2009 @08:58PM (#717161)
> CouchDB should not be compared to these.

Does CouchDB use SQL? No. So it may be mentioned in a post about "NoSQL".

> Description of Cassandra is misleading.

Defend your claim.

> He also misses the fact that Cabinet has real master-to-master replication.

When you start to need real master-to-master replication, the kind that Tokyo Tyrant offer is simply insufficient. It has no versioning, no way to resolve inconsistencies, no quorum write/read, etc. By the time you're at that scale, you had better be looking at Cassandra, HBase, or Hypertable IMO.

> Feature overlap between Redis, Cassandra and Tokyo C/T is too big.

Maybe I can buy that Redis and Tokyo Cabinet/Tyrant have too great of feature overlap (and note that I'm only interested in Redis as a high performance count server), but Cassandra is in a completely different realm with completely different sets of tradeoffs. To suggest that it is similar to the others is simply naive.

Re:My Thoughts on NoSQL by lucifer on Tuesday July 21, 2009 @09:46PM (#717203)
CouchDB is a document centric system. Its really a different beast, altogether. Its closer to a CMS than a DB.
Re:My Thoughts on NoSQL by jbellis on Tuesday July 21, 2009 @09:58PM (#717211)
No. While you could build a CMS with couchdb, it definitely isn't one out of the box.

All "document-oriented" means in the Couch context is that the db's data model is "you have a key and a collection of attributes associated with it."

Re:My Thoughts on NoSQL by lucifer on Wednesday July 22, 2009 @12:23AM (#717366)
Re:My Thoughts on NoSQL by jbellis on Wednesday July 22, 2009 @10:28AM (#717904)
You're confusing "Notes Domino" with "a CMS" which it is not. From your link:

> CouchDB shares a basic concept of a document oriented database with views that Notes Domino has.

> In this model "documents" are just arbitrary collections of values that are stored some how. In CouchDB the documents are JSON objects of arbitrary complexity. In Notes the values are simple name value pairs, where the values can be strings, numbers, dates or arrays of those.

Re:My Thoughts on NoSQL by lucifer on Wednesday July 22, 2009 @09:32AM (#717808)
I didn't say it was a CMS: "Its closer to a CMS than a DB."
Re:My Thoughts on NoSQL by paulgb on Tuesday July 21, 2009 @10:16PM (#717221)
I guess the name CouchCMS was already taken?
Re:My Thoughts on NoSQL by jseifer on Tuesday July 21, 2009 @03:35PM (#716731)
I really would have liked some more background to his statement on Tokyo Cabinet's tables other than saying that "they basically suck." I've never heard this before and couldn't find anything on Google to support that.
Re:My Thoughts on NoSQL by evgen on Wednesday July 22, 2009 @12:36AM (#717380)
It is a completely unsupported assumption made by someone who was probably expecting the TC tables to act like standard RDBMS tables instead of looking at them as a way to structure the values in a key-value store so that you can query on components of the value in addition to the key.