sofastack / sofa-jraft

A production-grade java implementation of RAFT consensus algorithm.
https://www.sofastack.tech/projects/sofa-jraft/
Apache License 2.0
3.52k stars 1.12k forks source link

请教问题:jraft的log目录会不会随着系统运行时间而无限增加,有没有清空策略 #1093

Closed zxuanhong closed 3 months ago

zxuanhong commented 3 months ago

Your question

  1. jraft的log目录会不会随着系统运行时间加长而无限增加,有没有清空策略。

Your scenes

Describe your use scenes (why need this feature)

Your advice

Describe the advice or solution you'd like

Environment

fengjiachun commented 3 months ago

只要开启了 snapshot 功能,raft log 会被裁剪的,只不过默认使用 rocksdb 作为 log 存储,可能不会那么快的就释放出空间,可能需要 compaction 后

zxuanhong commented 3 months ago

@fengjiachun 我实在不明白kv系统。如果log会被删除,而不能实现自己删除策略。那进行apply log时是不是会存在数据丢失。特别是apply task还不是应用全部(只是应用多数)。而且一旦删除了,那添加新的成员数据是不是会大面积的对应不上

zxuanhong commented 3 months ago

@fengjiachun 而一旦不删除,那就肯定会随着时间增加而增加。这肯定是不行的

fengjiachun commented 3 months ago

@fengjiachun 我实在不明白kv系统。如果log会被删除,而不能实现自己删除策略。那进行apply log时是不是会存在数据丢失。特别是apply task还不是应用全部(只是应用多数)。而且一旦删除了,那添加新的成员数据是不是会大面积的对应不上

上一条回复中,我提到了 Snapshot,不就是解决你的问题了吗? 每次 Snapshot 完成后就会裁剪掉前边的 raft log,详细内容可先读下官方文档,也可以直接读 raft 的论文