10

Cassandra のセカンダリ インデックスは内部でどのように機能しますか? ドキュメントには、ある種のハッシュインデックスであると記載されています。

CFに列username="foobar"(列のユーザー名は副次的なインデックスになります)があるUserとしますRandomOrderingPartitioner

  1. カサンドラが「分散ハッシュインデックス」を使用するという私の仮定は正しいですか(=インデックスが1つのノードにない=インデックスが分割されている)?
  2. インデックス パーツが保持されているノードの数 (レプリケーション ファクターと同じ量)。
  3. インデックス パーツが保持されているノードはどれですか (Cassandra は RandomOrderingPartitioner のキーと同じロジックでインデックスを分割しますか)?

  4. インデックスが 1 つのノードのみで保持されている (そしてもちろんレプリケートされている) 場合、cassandra はインデックスを担当するノードをどのように "決定" しますか (列名をハッシュし、次に randompartitioner logik を使用してノードを決定します)。

  5. このインデックスが低いカーディナリティ向けに最適化されているというのは本当ですか? はいの場合、セカンダリインデックスを使用しないでください(インデックスには別のCFを使用してください)、おおまかな見積もりは何ですか(判断に使用できる具体的な数値はありますか)?または、カーディナリティを計算して正しい決定を下す方法を別の方法で言いましたか?

私はこれを理解しようとしています。

4

1 に答える 1

11

セカンダリ インデックスは、基本的に別の列ファミリにすぎません。ユーザーは直接アクセスできませんが、JMX Bean を介して統計を表示できます: org.apache.cassandra.db.IndexedColumnFamilies

ここで統計を参照して、通常の列ファミリーと同様にインデックスの有効性を評価できます。

詳細については、これらの以前の投稿を参照してください。

Cassandra の 0.7 セカンダリ インデックスはどのように保存されますか?

Cassandra 0.7 の自動セカンダリ インデックスはどの程度スケーラブルですか?

hector タグがあるので、ここに IndexedSlicesQuery のテスト ケースへのリンクがあります: https://github.com/rantav/hector/blob/master/core/src/test/java/me/prettyprint/cassandra/model /IndexedSlicesQueryTest.java

于 2011-06-20T22:52:59.563 に答える