こんにちは、cql3を使用してマップタイプのテーブルにデータを挿入する際に発生しているこの問題を理解しようとしています。通常、cql3スレッドごとに平均約1000 iopsのデータを問題なく挿入できます。マップ タイプを追加すると、〜 100,000 エントリの後に次のエラーで挿入がタイムアウトしました: 要求を完了できません: 1 つ以上のノードが利用できませんでした。複数のノード (データセンター間でも) で、挿入中に CPU 負荷が異常に高くなっていることに気付きました。
各ノードの仕様は次のとおりです。 CPU: 16 コア メモリ: 64GB
これは、私が設定したテスト テーブル スキーマです。
CREATE TABLE test (
id text,
q text,
g text,
gt text,
gi map<text,text>,
ts timestamp,
PRIMARY KEY (id, ts)
) WITH CLUSTERING ORDER BY (ts DESC);
CREATE KEYSPACE testkeyspace WITH replication = {
'class': 'NetworkTopologyStrategy',
'DC1': '2',
'DC2': '2'
};
カサンドラ バージョン 1.2.4
更新: 現時点では、他の rdbm からデータをインポートしているだけです。ほぼ 100% の確率で、マップ列に新しい行または新しい要素を追加しています。マップ列に含めることができる要素数の制限については承知しています。