cassandra 目录
- data: 用于存储真正的数据文件,即SSTable文件,也可以指定多个目录,每个目录可以在不同的磁盘中
- commitlog: 用于存储未写入SSTable中的数据,cassandra每次写入,都会先将数据记录在该日志文件中,保证宕机都不会丢数据
- cache: 用于存储系统中的缓存数据。当cassandra重启的时候,会从该目录下加载缓存数据
Commitlog
cassandra 数据更新的时候,第一个记录这个更新的地方就是 Commitlog
commitlog 写入策略
- 周期记录(periodic)
- 批量记录(batch)
Memtable
数据写入commitlog后,将缓存在Memtable 中
SSTable
当Memtable中缓存的某一个ColumnFamily中的数据或者超过上一次生成的SSTable的后,Cassandra 会将Memtable中对应 的ColumnFamily的数据持久化到磁盘,生成一个SSTable
Data文件
Data 文件才是存储真正的数据,data 文件不仅仅存储了需要查询的数据,另外还存储了某一个Key对应的一些Column索引信息