アプリケーションのテーブルの1つに作成されるトゥームストーンの数を評価しようとしています。そのために、nodetoolcfstatsを使用しようとしています。これが私がそれをしている方法です:
create table demo.test(a int, b int, c int, primary key (a));
insert into demo.test(a, b, c) values(1,2,3);
今、私は上記と同じインサートを作っています。したがって、3つの墓石が作成されることを期待しています。しかし、このcolumnfamilyに対してcfstatsを実行しても、トゥームストーンが作成されていないことがわかります。
nodetool cfstats demo.test
Average live cells per slice (last five minutes): 0.0
Average tombstones per slice (last five minutes): 0.0
レコードを削除しようとしましたが、それでもトゥームストーンが作成されていません。ここで欠けているものはありますか?提案してください。
ところで、他のいくつかの詳細、*私たちはJavaドライバーのバージョン2.1.1を使用しています*私たちはCassandra 2.1.0に対して実行しています
クエリのトゥームストーンカウントの場合、最善の策はトレースを有効にすることです。これにより、クエリを完了するために読み取る必要のあるトゥームストーンの数など、クエリの詳細な履歴がわかります。これにより、トゥームストーンの総数はわかりませんが、パフォーマンスチューニングに関連している可能性があります。
Cqlshでは、これを有効にすることができます
cqlsh> tracing on;
Now tracing requests.
cqlsh> SELECT * FROM ascii_ks.ascii_cs where pkey = 'One';
pkey | ckey1 | data1
------+-------+-------
One | One | One
(1 rows)
Tracing session: 2569d580-719b-11e4-9dd6-557d7f833b69
activity | timestamp | source | source_elapsed
--------------------------------------------------------------------------+--------------+-----------+----------------
execute_cql3_query | 08:26:28,953 | 127.0.0.1 | 0
Parsing SELECT * FROM ascii_ks.ascii_cs where pkey = 'One' LIMIT 10000; | 08:26:28,956 | 127.0.0.1 | 2635
Preparing statement | 08:26:28,960 | 127.0.0.1 | 6951
Executing single-partition query on ascii_cs | 08:26:28,962 | 127.0.0.1 | 9097
Acquiring sstable references | 08:26:28,963 | 127.0.0.1 | 10576
Merging memtable contents | 08:26:28,963 | 127.0.0.1 | 10618
Merging data from sstable 1 | 08:26:28,965 | 127.0.0.1 | 12146
Key cache hit for sstable 1 | 08:26:28,965 | 127.0.0.1 | 12257
Collating all results | 08:26:28,965 | 127.0.0.1 | 12402
Request complete | 08:26:28,965 | 127.0.0.1 | 12638