12

データの書き込みと読み取りを高性能で実行できるデータを格納するデータベース/メカニズムを探しています。

このストレージは、複数のシステムにわたって重要な情報などのログを保存するために使用されます。Since it's critical data which will be logged, read performance should be pretty fast as these data will be used to show history. Since we never do update on them/delete on them/or do any kinda joins, I am looking for right solution.おそらく、データを長期間アーカイブする可能性がありますが、それは問題ありません。

さまざまな NoSql データベースを理解するためにさまざまな情報源を調べてみましたが、専門家の意見は常に優れています :)

Must Have:
1. Fast Read without fail
2. Fast Write without fail
3. Random access Performance
4. Replication kinda feature, one goes down, immediately another should be up and working
5. Concurrent write/read data

Good to Have:
1. Search content like analysing the data for auditing with/without Indexes

Don't required:
1. Transactions are not required at all
2. Update never happens
3. Delete never happens
4. Joins are not required

参照: http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis

4

3 に答える 3

6

カサンドラのスポンサーにさせてください。

免責事項:私はCassandraが他のものよりも優れているとは言いません.mongo/redis/何でも深く知らないので、この種のものには入りたくありません.

私が Cassandra を提案する理由は、あなたのニーズが Cassandra が提供するものと完全に一致し、「不要リスト」が、Cassandra でサポートされていない (インスタンスの結合) か、アンチパターン (削除) と見なされる一連の機能であるためです。場合によっては更新されます)。

あなたの「マストハブ」リストから、ポイントごとに

  1. 必ず高速読み込み:対応。各読み取り操作の一貫性レベルを選択して、最新の情報を取得することがどれほど重要か、速度がどれほど重要かを判断できます

  2. 必ず高速書き込み: ポイント 1 と同じ

  3. ランダム アクセス パフォーマンス: Cassandra の世界では、ランダム アクセス パフォーマンスを得るために多くのパラメーターを考慮する必要がありますが、私の頭に浮かぶ最も重要なことはデータ モデルです。ここ)、ホットスポットを避けて、必要なものを手に入れます。DB を適切にモデル化する場合、データはクエリされるように構造化されているため、操作ごとにO(1)が必要です。

  4. レプリケーション: この Cassandra は、あなたが思っている以上に優れています。1 つのノードがダウンしても、クラスターには何も変化がなく、すべて (*) が完全に機能し続けます。Cassandra は、単一障害点を特定しません。Cassandra の古いバージョンで 3 年以上のアップタイムがあったと言えます。

  5. 同時書き込み/読み取りデータ: Cassandra は lww ポリシー (last-write-wins) を使用して、同じキーでの同時書き込みを処理します。システムは複数の読み書きをサポートし、新しいプロトコルでは非同期操作もサポートします。

Cassandra が提供する興味深い機能は他にもたくさんあります。線形水平スケーリングは私がより高く評価しているものですが、すべてのデータが更新された瞬間 (lww のタイムスタンプ)、カウンター機能、およびすぐ。

(*) - Consistency Level All を使用しない場合、そのようなシステムでは絶対に使用しないでください。

于 2014-11-12T18:38:59.703 に答える