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 }
posted @ 2014-12-11 06:00  zhifan  阅读(824)  评论(0)    收藏  举报