zookeeper源码分析之FileTxnSnapLog
目录 一、SnapShot 二、FileSnap 三、TxnLog 四、FileTxnLog 五、FileTxnIterator 六、FileTxnSnapLog zookeeper维护的数据有树形结构的DataTree,它的每一个节点是DataNode。另一个是TxnLog事务日志,它包括 事务头TxnHeader和事务数据Record。它们存在zookeeper服务器的内存中,zookeeper也会将它们序列化至文件中。FileSnap文件快照保证内存中的DataTree和session与数据文件的一致性。FileTxnLog则是保证内存中事务数据Record与实务文件的一致性。 一、SnapShot SnapShot接口为持久层提供,实现此接口,提供DataTree和session持久化功能。 public interface SnapShot { // 反序列化至DataTree和sessions,返回被序列化的最后一个zxid long deserialize(DataTree dt, Map<Long, Integer> sessions) throws IOException; // 序列化DataTree和sessions至文件名为name中 void serialize(DataTree dt, Map<Long, Integer> sessions, File