PaxosStore解读
1.
QuorumKV (NWR)
微信有大量分布式存储(QuorumKV)使用这个算法保证一致性,我们对这个算法做了改进,创造性地把数据副本分离出版本编号和数据存到不同设备,其中N=3(数据只有2份,版本编号有3份),在R=W=2时仍然可以保证强一致性。因为版本编号存放3份,对版本编号使用Quorum方式,通过版本编号协商,只有版本序号达成一致的情况下读写单机数据,从而在保证强一致性的同时实现高读写性能。实际数据只写入一台数据节点,使用流水日志的方式进行同步,并更新版本编号。但是我们的分布式存储(QuorumKV)仍存在数据可靠性比Paxos低的问题,因为数据只写一份副本,依靠异步同步。如果数据节点故障,故障节点上没有同步到另一个节点,数据将无法访问。版本节点故障时,如果Quorum协议没有设置W=3,也可能无法访问正确的数据节点副本。
2. PaxosStore (paxos)
2.1 paxosStore介绍
paxosStore是一个在跨园区数据中心间同步复制,提供灵活的数据模式和访问接口并支持单表亿行,具备快速伸缩能力,低延迟低成本,强一致和高可用的分布式存储系统。
特点:1) 无租约Paxos工程化,多主多写,高可用;
2) 针对业务特性优化,合并整体优化成本15+%;
3) 同一容灾、迁移框架下,支持多种插件化存储引擎、亿行大表;
4) 快速伸缩能力,基于反馈的自适应迁移系统。
2) 针对业务特性优化,合并整体优化成本15+%;
3) 同一容灾、迁移框架下,支持多种插件化存储引擎、亿行大表;
4) 快速伸缩能力,基于反馈的自适应迁移系统。
paxosStore的整体架构:
编程模型针对各种外部应用提供多种数据架构。一致性层(consensus layer)执行基于 Paxos 的存储协议。存储层包含了多个根据不同存储模型构建的存储引擎,这些引擎可以满足各种各样的性能要求。PaxosStore 的架构与传统存储设计的不同之处主要在于它能将一致性协议应用提取出来作为一个中间件,为所有潜在的存储引擎提供数据一致性保证。
2.2 一致性层详解
2.2.1 paxos
2.2.2 paxos
paxosLog的结构: