Curve 基于 Raft 的写时延优化
1 背景 Curve(https://github.com/opencurve/curve )是网易数帆自主设计研发的高性能、易运维、全场景支持的云原生软件定义存储系统,旨满足Ceph本身架构难以支撑的一些场景的需求,于2020年7月正式开源。当前由CurveBS和CurveFS两个子项目构成,分别提供分布式块存储和分布式文件存储两种能力。其中CurveBS已经成为开源云原生数据库PolarDB for PostgreSQL的分布式共享存储底座,支撑其存算分离架构。 在CurveBS的设计中,数据服务器ChunkServer数据一致性采用基于raft的分布式一致性协议去实现的。 典型的基于raft一致性的写Op实现如下图所示: 以常见的三副本为例,其大致流程如下: 首先client 发送写op(步骤1),写op到达Leader后(如果没有Leader,先会进行Leader选举,写Op总是先发送给Leader),Leader首先会接收写Op,生成WAL(write ahead log),将WAL持久化到本地存储引擎(步骤2), 并同时并行将WAL通过日志发送rpc发送给两个Followe...

