- 4
- 0
- 约2.95千字
- 约 3页
- 2021-01-23 发布于广东
- 举报
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 的数 据模型和特征。第四部分详细介绍复制算法,并且评价了现实中的执行效果。第五部分 总结了开发这个系统的经验。第六部分相关工作回顾。第七部分总结 。;可用性和扩展性
对比我们对存储平台的要求可靠的、全局的、任意的增大规模,我们的硬件部分通常具 有物理位置的限制、容易发生故障、有限的容积。我们必须把这些部件封装为一个整体 来提高系统吞吐量和可靠性。
我们采用一个具有两方面特征的方法:
可靠性:实现了一个同步的,容错的日志复制器,并且对长距离的网络连接进行了优化 扩展性:我们把数据分区为许多小的数据库,每个拥有它自己的复制日志,存储在 NoSQL 数据中心。
复制
在一个数据中心穿过主机内进行数据复制,克服了主机节点故障,提高了可用性。对于 云存储来说,为了满足可用性的需求,服务提供商必须在较大地理范围内进行数据复制。
策略
有几种常见的适于大范围地理空间内数据复制的策略
异步主从式:一个主节点复制日志项到至少一个从节点。在主节点的日志追加确认和往 从节点发送是并行的。主节点支持 ACID 事务,但是在主节点发生故障切换到另外一个
从节点时,有数据丢失的风险
原创力文档

文档评论(0)