OpenAtomFoundation / pikiwidb

a high-performance, large-capacity, multi-tenant, data-persistent, strong data consistency based on raft, Redis-compatible elastic KV data storage system based on RocksDB
BSD 3-Clause "New" or "Revised" License
201 stars 63 forks source link

feat: Snapshot save & load #238

Closed dingxiaoshuai123 closed 6 months ago

dingxiaoshuai123 commented 7 months ago

1 、增加了 snapshot save 和 snapshot load 。 1)在 save_snapshot 中, 持有 Storage 读锁的情况下, 创建 chenckpoint 并保存在 braft 指定的 snaoshot 目录下. 2)snapshot_load 中, 持有 Storage 写锁的情况下, 将 checkpoint 中的数据拷贝一份到 DB 目录中, 并重新打开 DB. (对于 sst 文件,创建 hard link ,其他文件,copy). 3)、实验: 提拱了 save_load.sh 运行之后检查 leader 和 follower 文件的数据是否符合预期。 2、提供了 DOSNAPSHOT 命令, 手动触发 barft 创建快照.

image