42

How does Voldemort compare to Cassandra?

I'm not talking about size of community and only want to hear from people who have actually used both.

Especially I'm interested in:

  • How they dynamically scale when adding and removing nodes
  • Query performance
  • How they scale when adding nodes (linear)?
  • Write speed
Sashi Kant
  • 13,277
  • 9
  • 44
  • 71
yazz.com
  • 57,320
  • 66
  • 234
  • 385
  • 39
    Niiice! How does a character from Harry Potter compares to a Greek goddess :)... Now that's interesting. – Anton Gogolev Feb 12 '10 at 13:56
  • And who would win in a fist fight? – Jacob Feb 12 '10 at 13:58
  • 3
    @Anton: +1 to your comment except that she was not a goddess :) – Quassnoi Feb 12 '10 at 13:59
  • 20
    **Sex appeal:** Cassandra is way hotter than Voldemort. Compare http://en.wikipedia.org/wiki/Voldemort http://en.wikipedia.org/wiki/Cassandra **Community size:** Voldemort tends to have a smaller, more dedicated, quite violence-prone community. Followers of Cassandra (warning about horrible things to come) are more widespread. – Pekka Feb 12 '10 at 14:00
  • 2
    Close as not programming related, please – Vinko Vrsalovic Feb 12 '10 at 14:04
  • @Vinko, of course this is programming realted, check the links in the question. – Pekka Feb 12 '10 at 14:05
  • 1
    @Pekka: I see my comment wasn't perceived as intended. I would have directly voted for closing instead of commenting about it if I truly believed what I wrote. – Vinko Vrsalovic Feb 12 '10 at 14:11
  • 1
    Subjective and Argumentative. There's no criteria for comparison. That's like Comparing C# to Java. The answer is *It depends*. – George Stocker Feb 12 '10 at 14:26
  • 1
    This is a valid question as these are both quite recent products and have alot of hype around them, and I need to know people's experience with dynamic adding/removal of nodes and things like that, and rebalancing of data, which varies "hugely" on alot of these products. I'm not looking for a religious war so please stop fighting. – yazz.com Feb 12 '10 at 17:00
  • And I want to hear from people who have actually used "both" products, just so that I only hear from people who know what they are talking about. If it means the question goes unanswered then so be it. – yazz.com Feb 12 '10 at 17:00

2 Answers2

36

Voldemort's support for adding nodes was just added recently (this month). So I would expect Cassandra's to be more robust given the longer time to cook and a larger community testing.

Both are fast (> 10k ops/s per machine). Because of their storage designs, I would expect Cassandra to be faster at writes, and Voldemort to be faster at reads. I would also expect Cassandra's performance to degrade less as the amount of data per node increases. And of course if you need more than just a key/value data model Cassandra's ColumnFamily model wins.

I don't know of any head-to-head benchmarks since the one done for NoSQL SF last June, which found Cassandra to be somewhat faster at whatever workload mix he was using. (The "vpork" talk from http://blog.oskarsson.nu/2009/06/nosql-debrief.html) 8 months is an eternity with projects under this much development, though.

jbellis
  • 19,347
  • 2
  • 38
  • 47
  • 1
    At last, someone who knows what they are talking about. Thanks jbellis, I thought this would never get answered! :) – yazz.com Feb 16 '10 at 14:33
8

Some additional comments:

  • Regarding write speed, Cassandra should be faster -- it is designed to be faster to write than read (you can avoid immediate disk hit for writes due to specialized way storage is done)

But main difference I think is actually not performance but feature set: Voldemort is strictly a key/value store (currently anyway), whereas Cassandra can offer range queries (with order-preserving partitioner), and bit more structure around data (column families etc). Former is an important consideration for design; latter IMO less so, you can always structure BLOB data on client side.

StaxMan
  • 113,358
  • 34
  • 211
  • 239
  • It's also important to note that cassandra supports bloomfilters, which allow to index rows by column presence inside a column family. It's very unlikely that you would achiveve something like that with client blob programming. – Jens May 22 '13 at 16:58