论文部分内容阅读
互联网应用的用户数量越来越多,分布越来越分散,使得建立多个数据中心并采用多数据副本策略来支持不同地域用户高效访问应用的方式逐渐成为业界的共识。广域数据多副本部署方式带来的关键问题之一是如何保证部署在各个数据中心的同一份数据多个副本之间的一致性。然而,互联网应用中不同类型的数据对一致性的要求往往不同。所以针对不同数据提供不同级别的一致性有利于权衡系统的性能和可用性。
目前,许多支持互联网应用的存储系统的一致性模型主要提供最终一致性,很少支持强一致,也缺乏对数据多一致性需求的支持;而且大部分该类系统的部署环境是一个数据中心内部的局域网环境。由于广域环境与局域环境在带宽、延迟和丢包率等诸多方面的差异,使得该类系统不能直接应用于广域分布、多一致性协议的数据同步场景。因此,本文提出一种针对广域环境特点的多一致性模型,重点研究广域数据强一致性、单调读一致性、写后读一致性和最终一致性的实现策略。
本文主要工作及贡献如下:
1.提出一种广域环境下的数据多一致性表示模型SCE(Strong& Client-centric&Eventual consistency models),针对不同类型数据提供不同级别的一致性保证。该模型基于全局写操作序和延迟读操作的思想。为系统中的每个写操作指定全局唯一顺序,用数据副本上执行的写操作序列表示数据状态。读操作依据相应一致性对数据状态的要求,在保证所要求的写操作执行完毕后才读取数据。
2.依据SCE多一致性表示模型的读写约束,设计了支持不同级别一致性的读写算法。设计状态跟踪服务StatusTracker,跟踪记录数据状态,为读算法中延迟条件的判断提供依据。设计预写日志结构,存储那些在一致性算法中被批准的写操作,为读算法在Catch-up过程中获取缺失的写操作提供支持。
3.针对广域环境特点,改变对Paxos算法的使用方式。Paxos算法良好的容错性保证在网络不稳定、丢包情况下写操作全局序不受影响。为每个数据项选择一个独立的Leader,采用基于固定Leader的Multi-Paxos算法优化Baxos Paxos算法的消息延迟,减少同步所需时间。同时,每个数据项独立Leader的方式也避免了唯一Leader模式负载不均衡的问题。
4.基于CNGrid GOS中的存储管理系统GRManager实现该模型并对其进行测评。实验表明该模型在不明显影响性能的情况下实现了广域数据强一致性、单调读一致性和写后读一致性,并且以良好的性能提供了最终一致性。