2

カサンドラ 1.0.12

名前が transactionRecords の列ファミリーがあり、その行キーは「ApplicationName」です。列ファミリーは、(UUID、transInfo) のような名前と値のペアで、トランザクションを記録するために使用されます。

約 1.5K TPS の高負荷で、1 時間後、SliceRange クエリは非常に遅くなります。sliceRage については、10000 などの制限のみを設定します。開始と終了は空です。sliceRange を使用してトランザクション情報を読み取り、いくつかのビジネス ロジックを実行してから、Cassandra から削除します。

org.scale7.cassandra.pelops.Mutator API を使用して DB に挿入します。 Mutator.writeColumn(columnFamily, rowkey, Mutator.newColumn(uuid, string));

nodetool を使用すると、SliceRange の読み取り時にレイテンシが 10 秒を超えます。

しかし、今では、読み取り時に TimedOutException が発生します。

誰かが同様の問題を抱えていますか?レイテンシーを減らすには?私たちのデータ構造は私たちの目的に適していますか? 助けや提案はありますか?

4

1 に答える 1

2

私のプログラミングミスだと思います。

範囲スキャンを実行すると、常に最初から開始し (5G MEMTable があります)、DB のエントリが増えるにつれてスキャン速度が低下し、最終的には 30 秒を超え、TimedOutException が発生しました。

以前に停止した場所 (ソートされたキー上) からのスキャンに変更することで、うまく機能するようになりました。

于 2013-01-27T03:18:00.523 に答える