1

Cassandra をデータ ストアとして使用するアプリケーションを構築することを考えていますが、低レイテンシの要件があります。私はこのブログ投稿EmbeddedCassandraServiceから知っています

次の実装は可能ですか? また、既知の落とし穴 (欠陥、機能制限) は何ですか?

1) Cassandra を組み込みサービスとして実行し、データをディスクに永続化します (永続的)。

2) Java アプリケーションは、次のいずれかを介してローカル組み込みサービスと対話します。長所は何ですか

  • TMemoryBuffer(またはもっと適切なもの?)
  • StorageProxy(この API を使用する際の落とし穴は何ですか?)
  • アパッチ アブロ? (下記の質問 5 を参照)

3) Java アプリケーションは、Thrift (または Avro?) を介してリモートの Cassandra サービス (「バックアップ」ノード) と対話します。

4) 成功するためには、ローカルの組み込み Cassandra サービスと、少なくとも 1 つのリモート (非組み込み) Cassandra ノードへの書き込みが常に成功する必要があります。これは可能ですか?カスタム/複雑な一貫性レベルを定義することは可能ですか?

5) 補足質問: Cassandra: The Definitive Guideのいくつかの場所で、Thrift が最終的に Avro に置き換えられると言及されていますが、まだそうではないようです?

ご想像のとおり、私は Cassandra を初めて使用するので、特定のドキュメント ページ (Wiki ホームページではなく) またはサンプル プロジェクトへの指示を歓迎します。

4

1 に答える 1

1

データベース全体がローカル マシン (つまり、単一のノード) に配置されていない限り、この構成によって得られるものは何もありません。Cassandra はクラスター全体でデータを分割するため、(コメントの 1 つに記載されているように) 書き込みは、データを所有する別のノードに対して頻繁に行われます。少なくとも 1 の整合性レベルで書き込みを行うと仮定すると、他のノードが書き込みを承認するまで、呼び出しはブロックされます。とにかくいくらかのネットワーク遅延があるため、これは組み込みインスタンスと通信する利点を無効にします。

于 2012-10-11T13:33:05.257 に答える