2011-01-20 4 views
-1

Google Reader(1対1コピー)のようなアプリケーションにはNoSQLアーキテクチャは何を使用しますか?Google Readerのようなアプリケーション用のNoSQLアーキテクチャ

MongoDB、Cassandra、CouchDB、Redis、HBase、Riakについて考えてみましょう。

+0

この質問は役に立ちます。 –

+0

私は答えを書いてから、そのような一般的な要件に基づいて、あなたはこれらの事例を作ることができることに気付きました。私は個人的にMongoDBを選択するでしょう - それは文書を保存するのに最適ですし、挿入物は非常に安く/速いです(そしてこのようなアプリケーションでは、より多くの挿入物を読み終えるようになります)。しかし、私はCouchDB、Redis、またはRiakのケースも作ることができました。 –

答えて

2

簡単な答えは、あなたが最も快適な答えを使用してください。

もっと複雑な答えは、Googleリーダーができることの詳細にあります。 1つの機能は複数のインデックスです。

各RSSエントリには、一意のキー、ユーザー、ts、読み取りフラグ、およびいくつかのカテゴリがあります。ドキュメント指向またはキーバリューデータベースを扱う場合、一般にキーを取得するのは簡単です。しかし、実際に実行する最初のクエリは何ですか?ユーザ、ts、読者別にリストします。

これはセカンダリインデックスが必要です。 AFAIK riakおよびredisはこれをまったくサポートしていません。 CouchDBCassandraにはいくつかの回避策(ビュー)があるようですが、まだ簡単ではありません。 MongoDBは、セカンダリインデックス「out of the box」をサポートしています。

だから、バットから離れて、MongoDBを使って作業するのは簡単です。

また、Mongoには一連の​​があり、データを非同期で簡単に更新できます。

+0

+1、技術はほとんど常にプログラマとあなたが持っている専門知識に二次的です。 – JasonSmith

+0

しかし、レコードの場合、CouchDBビュー*はセカンダリインデックスです! – JasonSmith