2016-11-05 8 views
2

私は、コレクションのサイズが将来拡張されるようになっているアプリケーションをテストしています.64kは場合によっては到達可能な制限です。カッサンドラの回収限度は何ですか?

この質問は、公式ドキュメントに矛盾があるように、コレクションサイズの制限についてです。 this文書を1として

あなたがコレクションに64K以上の項目を挿入した場合、唯一の64Kそれらの は、データの損失が生じ、照会可能になります。

しかし、あなたは、この見ている非常にページ上のCQL Limits linkにクリックスルー場合:

  • コレクション(リスト):コレクションサイズ:2B(2^31)を、値のサイズ:65535(2^16-1)(カサンドラ2.1以降では、ネイティブプロトコルV3を使用して)

  • コレクション(セット):コレクションサイズ:2B(2^31)。値サイズ:65535(2^16-1)(Cassandra 2.1以降、ネイティブプロトコルv3を使用)

  • コレクション(マップ):コレクションサイズ:2B(2^31);キーの数:65535(2^16-1);値のサイズ:65535(2^16-1)(カサンドラ2.1以降、使用 ネイティブプロトコルV3)それが1

そうですか? 1つのコレクションにつき64kアイテム、または1つのコレクションにつき20億アイテムですか?または、2億円です書き込み可能 64kを超えて読み込みできませんか?

ありがとうございます。

+0

これは少し話題にはなりますが、コレクションを更新するには、過剰な墓石を避けるためにコレクションを実装する方法に注意する必要があります。このテクニカルノートを参照してください:https://support.datastax.com/hc/en-us/articles/205368125 – markc

+0

観測のために感謝@マーク - 私はすべての私のセット/リスト/マップ関連のクエリで更新を使用します。それはもっと自然なようです。 –

答えて

3

あなたはどのバージョンのcassandraを使用していますか?

このドキュメントは2.0および2.1用です。その場合、コレクションに入れることができる要素の数に制限があります。 64kです。ネイティブプロトコルv3を使用している場合、各要素のサイズは2bになります。 これをチェックするhttps://issues.apache.org/jira/browse/CASSANDRA-5428

を使用していますが、もしあなたが2.2およびそれ以降のバージョンを使用しているなら、コレクションに20億個のアイテムを挿入できます。 ここはリンクです。 http://docs.datastax.com/en/cql/3.3/cql/cql_using/useCollections.html

と言っていますが、には、コレクションにその項目を挿入しないでください。あなたは最大要素の挿入制限を打つ前に、パフォーマンスの問題の方法をヒットします。

Collections cannot be "sliced"; Cassandra reads a collection in its entirety, impacting performance. Thus, collections should be much smaller than the maximum limits listed. The collection is not paged internally.

あなたが、その場合、コレクション内の項目の多くを持っている必要がある場合

はもはや適切でないと(クラスタリング列を持つ)特定のテーブルを使用する必要があります。

こちらがお役に立てば幸いです。

+0

答えをありがとう、これは私が推測したものですが、私は確信したかったのです。私が提示したドキュメンテーションの両方のリンクは、Cassandra 3.1用です。つまり、ドキュメンテーションの更新が必要です。 –

2

cassandra 2.1を使用している場合、64and itensをcassandraコレクションに追加することはできません。このバージョンでは、cassandraは要素を索引付けするために16ビットを使用します。それ以外の場合は、1つの項目を64k(サイズ)または2B(プロトコルに応じて)にすることができます。

+0

Oi Gustavo。 Boa noite。あなたはこれについて確信を持っていますか?カッサンドラの文書はあいまいであるか、あまり明確ではないようです。なぜ彼らはより高い限界(Cassandra 2.1およびそれ以降、ネイティブプロトコルv3を使用している)としてバージョン番号に注釈をつけるでしょうか?再度、感謝します。 –

+1

実際、それはcassandraのバージョンに依存します。これは、@ root545と同じくcassandra 2.1に当てはまります。私は私の答えを編集します。 –

関連する問題