Cassandra数据库从入门到精通系列之三:Cassandra数据存储格式

Cassandra数据库从入门到精通系列之三:Cassandra数据存储格式

  • 一、Cassandra数据
  • 二、CommitLog数据格式
  • 三、Memtable内存中数据结构
  • 四、SSTable数据格式

一、Cassandra数据

Cassandra的数据包括在内存中和磁盘中的数据

这些数据主要分为三种:

  • CommitLog:主要记录客户端提交过来的数据以及操作。这种数据被持久化到磁盘中,方便数据没有被持久化到磁盘时可以用来恢复。
  • Memtable:用户写的数据在内存中的形式。另外一种形式是BinaryMemtable,这个格式目前Cassandra并没有使用。
  • SSTable:数据被持久化到磁盘,又分为Data、Index和Filter三种数据格式。

二、CommitLog数据格式

  • Cassandra在写数据之前,需要先记录日志,保证Cassandra在任何情况下宕机都不会丢失数据。这就是CommitLog日志。
  • 要写入的数据按一定格式组成byte数组,写到IO缓冲区中定时被刷到磁盘中持久化。Commitlog是server级别的。每个Commitlog文件的大小是固定的,称之为一个CommitlogSegment。
  • 当一个Commitlog文件写满以后,会新建一个文件。当旧的Commitlog文件不再需要

你可能感兴趣的:(数据库,数据库,Cassandra数据库,Cassandra数据存储格式,从入门到精通系列之三)