redo 日志内部记录所有对 Memtable 的修改操作,在事务提交之前会要求 redo 日志刷盘成功。如果 observer 进程退出或所在服务器宕机,重启 observer 会扫描本地的 redo 日志文件用于恢复数据,提供数据库的持久性保证。

    • 维护多副本数据一致性

    redo 日志的组成

    OceanBase 数据库的 redo 日志共包括两部分:

    • ilog

    全称 index log,记录相同分区相同 log ID 的已经形成多数派日志的 commit log 的位置信息。位于 storage/ilog 目录下,文件编号从 1 开始并连续递增,文件 ID 不会复用,单个日志文件的大小非定长。这个目录下的日志文件是 clog 的索引,本质上是一种优化,ilog 的文件删除不会影响数据持久性(但可能会影响系统的恢复时间)。 ilog 和 clog 的文件没有对应关系,由于 ilog 针对单条日志记录的内容会比 clog 少很多,因此一般场景下 ilog 的文件数目也比 clog 文件数目少很多。