王耀,百度云架构师,专注于分布式存储和网络虚拟化方向,目前担任百度云IaaS方向技术负责人。2010年加入百度,一直从事基础架构相关工作,先后领导了百度分布式消息队列bigpipe、分布式文件系统NFS和AFS、分布式块存储CDS的设计开发工作,历经百度分布式存储系统发展的各个阶段。最近聚焦在网络虚拟化方向,专注SDN控制器和DPDK高性能转发网关。
王耀,百度云架构师,专注于分布式存储和网络虚拟化方向,目前担任百度云IaaS方向技术负责人。2010年加入百度,一直从事基础架构相关工作,先后领导了百度分布式消息队列bigpipe、分布式文件系统NFS和AFS、分布式块存储CDS的设计开发工作,历经百度分布式存储系统发展的各个阶段。最近聚焦在网络虚拟化方向,专注SDN控制器和DPDK高性能转发网关。
各个业务线上有很多的有状态服务单点,对线上服务都是潜在的隐患,如何低成本改造一直是服务高可用建设中的核心话题。各式各样分布式存储系统实现过程中都需要考虑分片、复制、修复、选主、均衡等问题,如何标准化实现并解决这些共性问题也是分布式存储系统设计的一个目标。
Raft协议中构建的复制状态机,为解决上面这些问题提供了便捷的方式。Raft复制状态机能够轻松将有状态服务单点的状态机转化为多副本复制状态机,从而实现这些单点服务的高可用改造;也能够快速实现分布式存储系统中单数据分片的副本维护,可以更专注存储引擎的设计,通过配合分片、放置和均衡等工作,快速搭建出一个分布式存储系统。
为了满足百度对一致性协议的需求,我们设计实现了一个功能完备的高性能Raft C++库———braft,对Raft协议做了一些强化以满足实际需求,对实现细节进行细致优化满足性能需求。braft在百度内已经有一些元信息模块高可用和分布式存储场景中成功的应用案例,比如虚机管理系统、容器管理系统、小批量任务调度系统、分布式块存储、分布式文件存储和分布式NewSQL等系统。
主要内容:
a) braft诞生的背景
b) braft设计实现中的思考
c) braft在百度内部的应用