为什么 nodetool status *keyspace* 在 TRUNCATE 后仍然显示数百 MB 的数据?
Why does nodetool status *keyspace* still show hundreds of MBs of data after TRUNCATE?
我已经为我的 table 在节点 .20 使用了来自 CQLSH 的 TRUNCATE
命令。
自从我发出命令以来已经过去了 20 分钟,nodetool status *myKeyspace*
的输出仍然在 6 个节点中的 4 个上显示大量数据。
我正在使用 Cassandra 3.0.8
192.168.178.20:/usr/share/cassandra$ nodetool status *myKeyspace*
Datacenter: dc1
===============
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
-- Address Load Tokens Owns (effective) Host ID Rack
UN 192.168.178.24 324,57 MB 256 32,7% 4d852aea-65c7-42e1-b2bd-f38a320ec827 rack1
UN 192.168.178.28 650,86 KB 256 35,7% 82b67dc5-9f4f-47e9-81d7-a93f28a3e9da rack1
UN 192.168.178.30 155,68 MB 256 31,9% 28cf5138-7b61-42ca-8b0c-e4be1b5418ba rack1
UN 192.168.178.32 321,62 MB 256 33,3% 64e106ed-770f-4654-936d-db5b80aa37dc rack1
UN 192.168.178.36 640,91 KB 256 33,0% 76152b07-caa6-4214-8239-e8a51bbc4b62 rack1
UN 192.168.178.20 103,07 MB 256 33,3% 539a6333-c4ef-487a-b1e4-aac40949af4c rack1
以下命令在 .24 节点上 运行。貌似还有snapshots/backups保存在某处?但是 Node.24 的数据量为 658 MB,与 nodetool status
报告的 324 MB 不符。那里发生了什么事?
192.168.178.24:/usr/share/cassandra$ nodetool cfstats *myKeyspace*
Keyspace: *myKeyspace*
Read Count: 0
Read Latency: NaN ms.
Write Count: 0
Write Latency: NaN ms.
Pending Flushes: 0
Table: data
SSTable count: 0
Space used (live): 0
Space used (total): 0
Space used by snapshots (total): 658570012
Off heap memory used (total): 0
SSTable Compression Ratio: 0.0
Number of keys (estimate): 0
Memtable cell count: 0
Memtable data size: 0
Memtable off heap memory used: 0
Memtable switch count: 0
Local read count: 0
Local read latency: NaN ms
Local write count: 0
Local write latency: NaN ms
Pending flushes: 0
Bloom filter false positives: 0
Bloom filter false ratio: 0,00000
Bloom filter space used: 0
Bloom filter off heap memory used: 0
Index summary off heap memory used: 0
Compression metadata off heap memory used: 0
Compacted partition minimum bytes: 0
Compacted partition maximum bytes: 0
Compacted partition mean bytes: 0
Average live cells per slice (last five minutes): 3.790273556231003
Maximum live cells per slice (last five minutes): 103
Average tombstones per slice (last five minutes): 1.0
Maximum tombstones per slice (last five minutes): 1
请注意,除了我在键空间中清理的那个,没有其他 table。如果使用 TRUNCATE
.
时未清除它们,则可能存在来自 cassandra-lucene-index 的一些索引数据
nodetool status
的键空间选项实际上仅用于了解计算所有权时要包括的复制因子和数据中心。负载实际上是针对所有 sstables,而不仅仅是一个键空间。就像 IP 地址、主机 ID 和令牌数量不受设置键空间选项的影响一样。 status
更像是一个全局检查。
Space used by snapshots
预计仍有旧数据。当您执行截断时,它会快照数据(可以通过将 cassandra.yaml
中的 auto_snapshot
设置为 false 来禁用)。要清除所有快照,您可以使用 nodetool clearsnapshot <keyspace>
我已经为我的 table 在节点 .20 使用了来自 CQLSH 的 TRUNCATE
命令。
自从我发出命令以来已经过去了 20 分钟,nodetool status *myKeyspace*
的输出仍然在 6 个节点中的 4 个上显示大量数据。
我正在使用 Cassandra 3.0.8
192.168.178.20:/usr/share/cassandra$ nodetool status *myKeyspace*
Datacenter: dc1
===============
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
-- Address Load Tokens Owns (effective) Host ID Rack
UN 192.168.178.24 324,57 MB 256 32,7% 4d852aea-65c7-42e1-b2bd-f38a320ec827 rack1
UN 192.168.178.28 650,86 KB 256 35,7% 82b67dc5-9f4f-47e9-81d7-a93f28a3e9da rack1
UN 192.168.178.30 155,68 MB 256 31,9% 28cf5138-7b61-42ca-8b0c-e4be1b5418ba rack1
UN 192.168.178.32 321,62 MB 256 33,3% 64e106ed-770f-4654-936d-db5b80aa37dc rack1
UN 192.168.178.36 640,91 KB 256 33,0% 76152b07-caa6-4214-8239-e8a51bbc4b62 rack1
UN 192.168.178.20 103,07 MB 256 33,3% 539a6333-c4ef-487a-b1e4-aac40949af4c rack1
以下命令在 .24 节点上 运行。貌似还有snapshots/backups保存在某处?但是 Node.24 的数据量为 658 MB,与 nodetool status
报告的 324 MB 不符。那里发生了什么事?
192.168.178.24:/usr/share/cassandra$ nodetool cfstats *myKeyspace*
Keyspace: *myKeyspace*
Read Count: 0
Read Latency: NaN ms.
Write Count: 0
Write Latency: NaN ms.
Pending Flushes: 0
Table: data
SSTable count: 0
Space used (live): 0
Space used (total): 0
Space used by snapshots (total): 658570012
Off heap memory used (total): 0
SSTable Compression Ratio: 0.0
Number of keys (estimate): 0
Memtable cell count: 0
Memtable data size: 0
Memtable off heap memory used: 0
Memtable switch count: 0
Local read count: 0
Local read latency: NaN ms
Local write count: 0
Local write latency: NaN ms
Pending flushes: 0
Bloom filter false positives: 0
Bloom filter false ratio: 0,00000
Bloom filter space used: 0
Bloom filter off heap memory used: 0
Index summary off heap memory used: 0
Compression metadata off heap memory used: 0
Compacted partition minimum bytes: 0
Compacted partition maximum bytes: 0
Compacted partition mean bytes: 0
Average live cells per slice (last five minutes): 3.790273556231003
Maximum live cells per slice (last five minutes): 103
Average tombstones per slice (last five minutes): 1.0
Maximum tombstones per slice (last five minutes): 1
请注意,除了我在键空间中清理的那个,没有其他 table。如果使用 TRUNCATE
.
nodetool status
的键空间选项实际上仅用于了解计算所有权时要包括的复制因子和数据中心。负载实际上是针对所有 sstables,而不仅仅是一个键空间。就像 IP 地址、主机 ID 和令牌数量不受设置键空间选项的影响一样。 status
更像是一个全局检查。
Space used by snapshots
预计仍有旧数据。当您执行截断时,它会快照数据(可以通过将 cassandra.yaml
中的 auto_snapshot
设置为 false 来禁用)。要清除所有快照,您可以使用 nodetool clearsnapshot <keyspace>