Integrate Apache Ratis to help manage Raft status
- 主要语言
- Java
- 星标
- 6.4k
- 派生
- 1.2k
- 平均合并
- 1 天 23 小时
- 30 天内合并 PR
- 115
描述
We have some discussions about the integration of Apache Ratis in RP: https://github.com/apache/iotdb/pull/3939.
Create a new issue here to let more people join.
https://github.com/apache/iotdb/pull/3939#issuecomment-917955815
https://github.com/apache/iotdb/pull/3939#issuecomment-917961701
https://github.com/apache/iotdb/pull/3939#issuecomment-917983405
Update the reasons why I'd like to import a 3rd party Raft library.
- First and the important one, raft implementation in IoTDB can't guarantee the correctness (I mean consensus part, even only for write). We have found and fixed some bugs about Raft and we are not sure the end of this. Just like @LebronAl said, the devil lies in the corner cases. It's very hard for us to construct a systematic UT/IT/Manual tests to ensure the safe properties of Raft. As for performance affect, my understanding is even the fastest vehicle should be saft. And raft is only a small part of system, I think if we can use the 3rd party library properly, performance loss should be very small.
- Second, current implementation of Raft mixed together with application logic which is hard to maintain and understand.
- Last but not least, apply 3rd party library could release us from detail of Raft and focus on core engine improvement, building IoTDB ecosystem, etc.
贡献指南
调研方向
首先阅读 pull request 3939 中的讨论,以及关于导入 Apache Ratis 的相关评论。该 issue 未指定实现文件、测试、集成边界或验收标准;在开始实现之前,需要先确定一致同意的设计和明确的完成标准。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- java
- 领域
- distributed-systems
- Issue 类型
- 功能
- 难度
- 5/5
- 预计耗时
- 一周以上
- 活跃度
- 停滞
- 描述清晰度
- 需要澄清
- 新手友好度
- 20/100