arana-db / arana-db/kiwi-cpp

Raft 集群进度

Open
#15 0 comments 0 reactions 0 assignees View on GitHub
✏️ Feature
Dominant language
C++
Stars
49
Forks
8
PR merge metrics
No merged PRs in 30d

Description

## 待做事项

## raft

- [x] **实现 Redis Raft 命令**,实现 **RAFT.CLUSTER INIT**, **RAFT.CLUSTER JOIN**, **RAFT.NODE ADD**, **RAFT REMOVE** 命令 **@KKorpse & @Panlei-coder**
- [x] **引入 braft** **@Panlei-coder**
- [x] **Check Point** **@dingxiaoshuai123**
- [x] **apply 支持**,完成 `praft` 添加 `binlog` 和 `on_apply` 解析 `binlog` 并写入的逻辑 **@lonfar-ncy**
- [x] **braft log index 映射** **@lonfar-ncy**
- [x] **Raft** 快照支持 **@dingxiaoshuai123 & @Panlei-coder**
- [x] **flush event 时机** **@dingxiaoshuai123**
- [x] **on_spapshot_load 区分自己安装快照 vs 自己正在启动** **@Panlei-coder**
- [x] **braft** 快照自定义日志截断点 **@Panlei-coder**
- [x] **raft 读一致性的实现** **@Panlei-coder**
- [ ] **优雅关闭 pikiwidb** **@smx**
- [ ] **单独 cf 保存其它 cf flush 位点** **@文一**
- [ ] **braft 新增接口,判断两个 logindex 之间数据量** **@gkj**
- [ ] **日志截断优化**
## 主从

- [ ] **braft 主从模式** **@KKorpse**
- [ ] **PikiwiDB 主从命令** **@Panlei-coder**
## 测试

- [ ] **raft 测试** https://github.com/OpenAtomFoundation/pikiwidb/discussions/273
## 文档建设

- [ ] **raft 集群操作文档** **@Panlei-coder**

## 优化点

- [ ] **logindex 维护的多队列优化**
- [ ] **一个 rocksdb 一个 raft (优先级低)**
- [ ] **1 我们可以将主动 Leader Election 的功能关闭,这样就不需要维护 Leader Lease 的心跳了 OR 2 将复制组之间的心跳合并到节点之间的心跳 ref [braft raft](https://github.com/baidu/braft/blob/master/docs/cn/raft_protocol.md)**

Contributor guide

No contributing guide indexed for this repository

Research direction

This issue is a broad Raft roadmap with many completed and unchecked items, including graceful shutdown, replication, testing, and documentation. Start by reviewing the remaining checklist and the linked Raft testing discussion at https://github.com/OpenAtomFoundation/pikiwidb/discussions/273. A task is done only when its specific scope is completed, with the relevant tests or documentation updated where listed.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
databases, distributed-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
15/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.