Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cassandra,为什么SSTABLE count是1列族(表)的3_Cassandra_Cassandra 2.0 - Fatal编程技术网

Cassandra,为什么SSTABLE count是1列族(表)的3

Cassandra,为什么SSTABLE count是1列族(表)的3,cassandra,cassandra-2.0,Cassandra,Cassandra 2.0,我是卡桑德拉的新手, 1) 为什么单列族有3个sstable。 2) 表(列族)的每一列是否存储在环的不同节点中?或者完全列族存储在单个节点中(如果我没有设置复制因子) 例如: 表:信息1 SSTable计数:3 Space used (live), bytes: 221521 Space used (total), bytes: 226349 SSTable Compression Ratio: 0.2548965072049006 Number of keys

我是卡桑德拉的新手, 1) 为什么单列族有3个sstable。 2) 表(列族)的每一列是否存储在环的不同节点中?或者完全列族存储在单个节点中(如果我没有设置复制因子)

例如: 表:信息1

SSTable计数:3

    Space used (live), bytes: 221521
    Space used (total), bytes: 226349
    SSTable Compression Ratio: 0.2548965072049006
    Number of keys (estimate): 384
    Memtable cell count: 7817866
    Memtable data size, bytes: 38797312
    Memtable switch count: 51
    Local read count: 0
    Local read latency: 0.000 ms
    Local write count: 26539152
    Local write latency: 0.000 ms
    Pending tasks: 0
    Bloom filter false positives: 0
(三)

提交日志同步:定期 提交日志同步周期单位:10000

Commitlog同步为10秒。但数据未传输或刷新到光盘?。 Memtable数据大小,字节:38797312

据我所知,Cassandra为SSTable创建了三个文件,一个用于数据,另一个用于bloom过滤器,第三个用于索引


我认为这会对您有所帮助。

SSTable是不可变的,因此,每当发生插入/更新时,Cassandra都会在另一个SSTable中写入插入或更新数据的新时间戳版本,而不是覆盖行。通过执行压缩,可以将所有SStable合并到单个SStable中

压缩通过分区键合并每个SSTable数据中的数据,根据其时间戳选择要存储的最新数据

1) 为什么单列族有3个sstable

每当memtable刷新到磁盘上时,就会创建一个新的SSTABLE。什么时候冲洗?memtable已满或提交日志已满或触发手动刷新时。节点中SSTABLE的数量有一个限制,该限制是可配置的(最小阈值,即一次节点中可以存在的SSTABLE的最大数量)。当超过此限制时,将触发压缩,这将合并SSTABLES,并使用分区键从所有SSTABLES中获取的最新时间戳数据创建一个新SSTABLE

2) 这是表格的每一列吗

没有1-1映射b/w列族和sstable。每当memtable刷新到磁盘上时,就会创建一个新的SSTABLE