NoSQL architecture for app like Google Reader
Wha开发者_开发问答t NoSQL architecture would you use for application like Google Reader (one to one copy)?
I consider MongoDB, Cassandra, CouchDB, Redis, HBase and Riak.
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.
精彩评论