ZK数据存储之内存数据库ZKDatabase

时间:2024-04-11 15:42:37

ZKDatabase功能

  ZKDatabase负责管理会话、DataTree和事务日志,向上层提供统一的数据操作接口,其基本结构如下图所示:
ZK数据存储之内存数据库ZKDatabase

ZKDatabase的初始化

  ZKDatabase的初始化大致分为两步:

  1. 加载某个数据快照文件,恢复某个时刻T的全量内存数据;
    初始化时,ZK会加载最新的100个数据快照文件,依次解析。首先,解析最新的数据快照文件,如果校验通过则返回文件名ZXID;否则,解析第二个最新的数据快照文件,以此循环。
  2. 加载对应的事务日志文件,获取时刻T之后的增量数据;
    根据步骤1返回的ZXID,加载对应的事务日志文件,然后将事务应用到内存中。