gpt4 book ai didi

cassandra - 尽管我已经插入了 >40k 行,为什么空间使用率为 0

转载 作者:行者123 更新时间:2023-12-03 08:06:28 26 4
gpt4 key购买 nike

目前,我有 3 个 Cassandra 节点。

我创建一个名为events的表

插入 >40k 行后,我在每个节点中执行以下命令。

nodetool -h localhost cfstats

这是节点之一的输出

Table: events
SSTable count: 0
Space used (live): 0
Space used (total): 0
Space used by snapshots (total): 43516
Off heap memory used (total): 0
SSTable Compression Ratio: 0.0
Number of keys (estimate): 1
Memtable cell count: 102675
Memtable data size: 4224801
Memtable off heap memory used: 0
Memtable switch count: 1
Local read count: 0
Local read latency: NaN ms
Local write count: 4223
Local write latency: 0.085 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): 0.0
Maximum live cells per slice (last five minutes): 0.0
Average tombstones per slice (last five minutes): 0.0
Maximum tombstones per slice (last five minutes): 0.0

令我惊讶的是,已使用空间(实时)已使用空间(总计) 均为 0。其他节点也有 0 已使用空间(实时) 已用空间(总计)

但是,当我执行 SELECT 时,我可以获得之前插入的多行。

请问,为什么所有节点的已使用空间(实时)已使用空间(总计) 为 0?

最佳答案

您的 Memtable 尚未刷新到磁盘。 Flush 通常由以下几种情况触发:

  • 内存表达到最大阈值大小
  • 负责该内存表中即将过期的数据的提交日志段
  • 用户调用nodetool刷新

如果插入 40k 行然后什么都不做,只要它们适合内存,它们就会保留在内存中。您将看到这些行没有永久磁盘使用情况,因为没有磁盘上的 sstable 保存它们的值。

这些行的持久性由提交日志保证,它按照突变在磁盘上发生的顺序存储突变,并且可以在节点发生故障时重播。提交日志是滚动日志,因此当提交日志段即将过期时,Cassandra 会将保存该段中数据的内存表刷新到磁盘上的 sstable。

关于cassandra - 尽管我已经插入了 >40k 行,为什么空间使用率为 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35835884/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com