19691029.
实验项目方案设计

分布式一致性 Key-Value 存储系统

基于 Raft 共识算法与 LSM-Tree 存储引擎实现的强一致性分布式键值数据库原型设计,探讨自动 Leader 选举、日志复制与持久化快照机制。

技术栈:C++RaftgRPCRocksDB

方案与设计说明:本项目为分布式一致性理论的实验验证原型,用于探讨 Raft 状态机与日志快照持久化机制,非已上线商业数据库产品。

项目概述

本项目为探索分布式系统一致性理论而设计的实验与工程验证原型。在节点宕机、网络分区(Network Partition)等网络异常环境下,推演数据强一致性(Linearizable Consistency)与高可用读写逻辑。

核心实现机制

  1. Raft 状态机与心跳选举:
    • 实现 Candidate、Follower、Leader 三种角色状态转换。
    • 基于随机超时定时器避免选票瓜分,通过 gRPC 广播 RequestVote 与 AppendEntries RPC。
  2. 日志压缩与快照持久化:
    • 当 WAL 日志长度超出阈值时,自动触发快照压缩,截断旧日志并将状态机镜像写入持久化磁盘。
  3. 只读请求线性一致性保障:
    • 引入 ReadIndex 机制,在处理读请求时确认当前 Leader 仍被多数派认可,避免因网络分区导致读取过期的脏数据(Stale Read)。