-1

What NoSQL architecture would you use for application like Google Reader (one to one copy)?

I consider MongoDB, Cassandra, CouchDB, Redis, HBase and Riak.

Gates VP
  • 44,957
  • 11
  • 105
  • 108
elniño
  • 121
  • 1
  • 7
  • This question needs a little more substance before it's useful. – Tyler Hobbs Jan 20 '11 at 18:28
  • I started writing an answer then I realized that based on such a generic requirement you could make a case for any of these. I would personally choose MongoDB - it works great for storing documents and inserts are very cheap/fast (and with an app like this you will end up doing more inserts then reads). But I could make a case for CouchDB, Redis, or Riak as well. – James Avery Jan 20 '11 at 18:30

1 Answers1

2

Easy answer, use the one you're most comfortable with.

The more complex answer really lies in the details of what Google Reader can do. One feature that you'll probably want is multiple indexes.

Each RSS entry is going to have a unique key, a user, a ts, a read flag and some categories. When dealing with document-oriented or key-value databases, it's generally easy to get the key. But what's the first query you're really going to run? List by user, ts, read.

Well, that's going to need a secondary index. AFAIK riak and redis don't support this at all. CouchDB and Cassandra seem to have some workarounds (views), but it's still not easy. MongoDB supports secondary indexes "out of the box".

So right off the bat, you're making it easy to get it working with MongoDB.

Mongo also has a series of atomic operations that makes is easier to update data asynchronously.

Gates VP
  • 44,957
  • 11
  • 105
  • 108