概述
Cassandra写入数据流程是先将数据写入Commitlog中,然后写入内存Memtable中,当满足一定条件将内存中的数据刷入磁盘SSTable。
Cassandra需要两个目录来分别保存Commitlog和SSTable生成的文件,目录位置可以通过配置项修改:
- data_file_directories:-/var/lib/cassandra/data
- commitlog_directory:/var/lib/cassandra/commitlog
Commitlog
由两个部分组成,如下:
- CommitLog-1396061983699.log
- CommitLog-1396061983699.log.header
SSTable
Memtable中记录一个列族的更新记录,当数据达到配置的容量上限,或者条数限制等条件时,会被写入SSTable中。SSTable会为每个keyspace建一个目录,默认会有一个system目录,供系统使用。- User-e-1-Data.db
- User-e-1-Filter.db
- User-e-1-Index.db