日志结构
它由多种类型的 WAL 记录顺序追加写入组成,每个记录由:
Type(记录类型)
不同类型的记录通过 Type 字段区分,
目前,记录类型支持 5 种,分别是:
文件元数据记录:文件元数据记录包含节点 ID、集群 ID 信息,它在 WAL 文件创建的时候写入;
日志条目记录:包含 Raft 日志信息,如 put 提案内容
状态信息记录:包含集群的任期号、节点投票信息等,一个日志文件中会有多条,以最后的记录为准;
CRC 记录:包含上一个 WAL 文件的最后的 CRC(循环冗余校验码)信息, 在创建、切割 WAL 文件时,作为第一条记录写入到新的 WAL 文件, 用于校验数据文件的完整性、准确性等;
快照记录:包含快照的任期号、日志索引信息,用于检查快照文件的准确性。
CRC(循环冗余校验码)
CRC 为循环校验码信息;
Data(数据)
Data 为对应记录内容,