cassandra compact
cassandra 写入
cassandra 首先写入memtable, 与此同时写入commitlog. memtable 在内存,commitlog 在磁盘。 memtable 写完后会flush 到磁盘,成为SSTable. 同时对应的commitlog 会被删除。 之后对已经写入磁盘的行进行任何的update/delete 都会被写入更新的memtable->SSTable. 最后在compact 的时候合并这些操作。
Compact 策略
1. SizeTieredCompactionStrategy
在column family 级别设置。 在每个CF 有min_threshold 个SSTable 的时候触发。 这也是默认的compact 策略。
2. LeveledCompactionStrategy
每个SSTable 大小都一样,它们被分割到不同level group. 在每个Level 中,一个行的不同列肯定出现在同一个SSTable。 每个Level 的大小都是上个Level 的10倍。
查看compact 策略
describle columnfamily {cfname}
select * from system.schema_columnfamilies;
修改compact 策略
ALTER TABLE users WITH compaction = { 'class' : 'LeveledCompactionStrategy' }
ALTER TABLE users WITH compaction = {'class' : 'SizeTieredCompactionStrategy', 'min_threshold' : 6 }

浙公网安备 33010602011771号