「WAL」- Write Ahead Log

日志结构

它由多种类型的 WAL 记录顺序追加写入组成,每个记录由:

Type(记录类型)

不同类型的记录通过 Type 字段区分,

目前,记录类型支持 5 种,分别是:

文件元数据记录:文件元数据记录包含节点 ID、集群 ID 信息,它在 WAL 文件创建的时候写入;

日志条目记录:包含 Raft 日志信息,如 put 提案内容

状态信息记录:包含集群的任期号、节点投票信息等,一个日志文件中会有多条,以最后的记录为准;

CRC 记录:包含上一个 WAL 文件的最后的 CRC(循环冗余校验码)信息, 在创建、切割 WAL 文件时,作为第一条记录写入到新的 WAL 文件, 用于校验数据文件的完整性、准确性等;

快照记录:包含快照的任期号、日志索引信息,用于检查快照文件的准确性。

CRC(循环冗余校验码)

CRC 为循环校验码信息;

Data(数据)

Data 为对应记录内容,