baidu / braft

An industrial-grade C++ implementation of RAFT consensus algorithm based on brpc, widely used inside Baidu to build highly-available distributed systems.
Apache License 2.0
3.95k stars 881 forks source link

定制 snapshotReader 问题。 #441

Closed dingxiaoshuai123 closed 6 months ago

dingxiaoshuai123 commented 7 months ago

请问如果要继承SnapshotReader 定制自己的 Reader ,是要把 SnapshotStorage 、SnapshotWriter 等等都重新实现吗?

dingxiaoshuai123 commented 7 months ago

我看代码,应该要实现 SnapshotStorage 的派生类,然后返回自己的 Reader 和 Writer 。还有其他方法吗?

PFZheng commented 7 months ago

如果是snapshot是一些文件,那raft本身就能处理,如果需要从rocksdb之类的存储里转一道,可以提供一个定制的file sytem adaptor实现,在open接口里返回定制的file adaptor进行处理,BufferedSequentialReadFileAdaptor和BufferedSequentialWriteFileAdaptor可以简化一些工作