- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE
PAGE 1
Megastore:为交互式服务提供可扩展、高可用的存储
摘要:
Megastore是为满足当今交互式在线服务的需求开发的存储系统。它融合了NoSQL数据存储的扩展性和传统RDBMS的便捷性,提供了强一致性保证和高可用性。在一个细粒度的数据分区内提供完全串行化的ACID。这种分区允许在大规模网路中,以合理的延迟进行同步复制写操作,并且在数据中心之间支持无缝的故障切换。这篇论文描述了Megastore的语义以及复制算法,并且描述了Megastore支持许多Google服务产品的经验。
序论
交互式在线服务使得存储面临从桌面应用迁移到云中的新需求。像email、合作文档、社交网络的规模指数倍的增长,考验着当前的基础架构。满足这些服务的存储需求是一项非常具有挑战性的工作。
首先,因特网带来了庞大的用户群,所以应用必须具有高扩展性。一个服务可以使用MySQL作为它的数据库快速开发,但是扩展这个服务到上百万的用户需要对它的存储架构进行重新设计。第二,服务必须竞争用户,这就需要服务能快速开发并迅速投入市场。第三,服务能够高响应,即存储系统必须低延迟。第四,服务需要为用户提供数据的一致性视图,即更新能够立即可见并且持久存储。最后,服务必须高可用,面对各种故障服务可以进行容错处理。
这些需求是矛盾的。一方面,传统的关系数据库提供了丰富的特征来方便建立应用,但是它们很难扩展到上百万的用户;另一方面,NoSQL数据库,像Google的Bigtable,Apache的HBase,Facebook的Cassandra等具有高扩展性,但是它们有限的API和弱一致性给应用开发带来了复杂性。
Megastore是满足当今交互式在线服务需求的存储系统。它的独特性体现在融合了NoSQL数据存储的扩展性和传统RDBMS的便捷性。它利用同步复制来活得高可用性和数据一致性。简言之,它对物理距离远的副本以足够低的延迟,提供完全串行化的ACID语义,以次来支持交互式应用。
我们通过采用一个在RDBMS和NoSQL之间的中间立场,来实现这种设计:我们把数据存储进行了分区,并且单独的复制每一个分区,在分区内提供完全的ACID语义,但是分区之间是有限的一致性保证。我们提供了传统的数据库特征,例如辅助索引,我们认为大多数的Internet服务数据都能被合适的进行分区,使得这种方法切实可用。
与传统的设计比较,我们采用Paxos算法为交互式应用建立一个高可用的系统,当在分布式的数据中心之间同步复制写操作时,能够提供合理的延迟。虽然很多系统使用Paxos算法进行封锁、主节点选举、复制元数据并且进行配置,我们认为Megastroe是使用Paxos算法部署的对每一个写操作穿过数据中心进行复制的最大的系统。
Megastore在Google内部已经被广泛部署使用了多年。它每天处理超过三十亿的写操作和二百多亿的读操作,存储接近1PT穿过全球数据中心的数据。
这篇论文的主要贡献:
为快速开发具有高可用性和扩展性的交互式应用设计了一个数据模型和存储系统。
实现了Paxos复制,为提高系统的高可用性,对一致性算法在穿过地理上分布的数据中心之间的操作进行了延迟优化
在Google内部部署Megastore的体验报告。
论文的组织结构如下:第二部分描述了Megastore如何利用分区提供可用性和扩展性,并且证实了对于许多交互式在线应用我们设计的有效性。第三步分介绍Megastore的数据模型和特征。第四部分详细介绍复制算法,并且评价了现实中的执行效果。第五部分总结了开发这个系统的经验。第六部分相关工作回顾。第七部分总结 。
2 可用性和扩展性
对比我们对存储平台的要求可靠的、全局的、任意的增大规模,我们的硬件部分通常具有物理位置的限制、容易发生故障、有限的容积。我们必须把这些部件封装为一个整体来提高系统吞吐量和可靠性。
我们采用一个具有两方面特征的方法:
可靠性:实现了一个同步的,容错的日志复制器,并且对长距离的网络连接进行了优化
扩展性:我们把数据分区为许多小的数据库,每个拥有它自己的复制日志,存储在NoSQL数据中心。
2.1复制
在一个数据中心穿过主机内进行数据复制,克服了主机节点故障,提高了可用性。对于云存储来说,为了满足可用性的需求,服务提供商必须在较大地理范围内进行数据复制。
2.1.1策略
有几种常见的适于大范围地理空间内数据复制的策略
异步主从式:一个主节点复制日志项到至少一个从节点。在主节点的日志追加确认和往从节点发送是并行的。主节点支持ACID事务,但是在主节点发生故障切换到另外一个从节点时,有数据丢失的风险。需要一致性协议来协调它们之间的关系。
同步主从式:主节点等待所有更新在从节点上都得到映像后才确认它。主节点和从节点的故障需要及时的
原创力文档


文档评论(0)