解析全球级分布式数据库Google Spanner

一.Spanner功能概要

在Spanner面世篇中简单的介绍过:Spanner具有高扩展性,多版本(multi-version)、世界级分布(globally-distributed)及同步复制(synchronously-replicated)等特性。

Spanner立足于高抽象层次,使用Paxos协议横跨多个数据集把数据分散到世界上不同数据中心的状态机中。世界范围内响应,出故障时客户副本之间的自动切换。当数据总量或服务器的数量发生改变时,为了平衡负载和处理故障,Spanner自动完成数据的重切片和跨机器(甚至跨数据中心)的数据迁移。

Spanner可以轻松的横跨数百个数据中心将万亿级数据库行扩展到数百万台机器中。高可靠性更是让应用程序如虎添翼,即使面对大范围的自然灾害,可靠性仍然能得到良好的保障(因为Spanner有着世界级的数据转移)。最初的用户来自F1 — 使用了美国境内的5个拷贝。多数其他应用程序都是在同一个地理区域将数据复制3到5份,使用相对独立的故障模式。也就是说多数的应用程序会选择低延迟超过高有效性,只用一两个数据中心来保障数据的可靠性。

Spanner的主旨是数据中心的管理,但是在分布系统基础设施的特色上同样是下足了功夫。尽管Bigtable很讨一些项目欢心,我们还是收到了一些Bigtable在某些应用程序(复杂的、不断变化的架构或者需要在大区域响应中保持强一致性)中使用会异常艰难的投诉。许多Google的应用程序都在使用Megastore,因为它的半关系">数据模型支持同步复制,尽管它有着可怜的吞吐量。

因此,Spanner已经从Bigtable-like版本的键值存储进化到现在的多版本数据库。数据存放在系统化的半关系表格中;数据被版本化了,每个版本都会用提交时间进行标注;旧版本的数据服从结构的垃圾回收策略;应用程序可以通过数据以前的时间标记来读取。

Spanner支持多用途的事务处理,并且提供了一个基于SQL的查询语言。作为世界级分布的数据库,Spanner更有一些令人感兴趣的特色:

1. 应用程序可以通过复制装置动态的对数据进行微控制。还可以通过制定约束条件来指定数据中心和其中包含的数据(无视数据与用户间的距离,数据与数据间的距离及数据保持的份数)。系统动态的和透明的在数据中心之间转移数据来保证资源的平衡利用。

2. Spanner有两个特性是很难在分布式数据库中实现的:读写的外部一致性和基于时间标记的全局读一致性。这让Spanner可以在全球范围内保持数据的一致备份,MapReduce一致执行和原子的Schema修改,即使是连续操作。

这些特性保证了Spanner可以有序的在世界范围内响应事务处理,即使是分散式的事务。时间标记反应了事务的顺序。另外,序列化的时间确保了外部一致性:如果事务T1在另一个事务T2之前提交,那么T1提交的时间标记是小于T2的。

Spanner是首个提供如此保证的系统。促成这项跨越的关键是TrueTime API(具有原子时钟和GPS)。TrueTime API直观的揭示了时钟的不可靠性,它运行提供的边界更决定了时间标记。如果不确定性很大,Spanner会降低速度来等待不确定因素的消失。Google集群管理软件更奠定了TrueTime的实施的基础。通过新型原子时钟将不确定性无限的放小。

二.Spanner的设计及一些重要组件(本部分特别感谢EMC研究院 颜开提供翻译支持)

由于Spanner是全球化的,所以有两个其他分布式数据库没有的概念。

Universe。一个Spanner部署实例称之为一个Universe。目前全世界有3个。一个开发,一个测试,一个线上。因为一个Universe就能覆盖全球,不需要多个。 Zones. 每个Zone相当
于一个数据中心,一个Zone内部物理上必须在一起。而一个数据中心可能有多个Zone。可以在运行时添加移除Zone。一个Zone可以理解为一个BigTable部署实例。

如图所示。一个Spanner有上面一些组件。实际的组件肯定不止这些,比如TrueTime API Server。如果仅仅知道这些知识,来构建Spanner是远远不够的。但Google都略去了。这里做一下简单介绍:

Universemaster: 监控这个universe里zone级别的状态信息。 Placement driver:提供跨区数据迁移时管理功能。 Zonemaster:相当于BigTable的Master。管理Spanserver上的数据。 Location proxy:存储数据的Location信息。客户端要先访问他才知道数据在那个Spanserver上。 Spanserver:相当于BigTable的ThunkServer。用于存储数据。

(责任编辑:蒙遗善)

时间: 2024-11-10 07:26:56

解析全球级分布式数据库Google Spanner的相关文章

2017双11技术揭秘—X-DB支撑双11进入分布式数据库时代

作者:章颖强(江疑).胡炜 X-DB 1.0(X-Cluster)是阿里自主研发的,100%兼容MySQL生态的,全球级分布式强一致的关系型数据库系统.今年双11是X-DB的第一次大考,本次双11X-DB服务于天猫/淘宝核心交易系统.核心物流系统.核心IM系统,经受了零点业务32.5万笔/秒峰值的性能考验(对应数据库峰值每秒破亿次的SQL调用):同时X-DB支撑起了新一代单元化架构,在分布式一致性算法Paxos的统一框架下,第一次提供了跨Region分布式强一致能力,实现高效的跨Region数据

蚂蚁金服CTO程立:金融级分布式交易的技术路径

蚂蚁金服首席技术官 程立 移动互联网.大数据与云计算作为新的基础设施,催生了新的互联网经济,正在推动各行各业的升级.伴随蚂蚁金服在新金融领域的探索,蚂蚁金服技术团队也在金融技术与架构领域不断开拓.从2005 年每秒处理1笔交易到2016 年"双十一"每秒处理12 万笔交易,从单一的支付到覆盖微贷.理财.保险.信用.银行等,通过十多年的探索与实践,我们形成一套包含金融级分布式交易.分布式大数据分析与决策等在内的完整架构与技术体系. 金融级系统的关键目标 如果将建造系统比作盖楼的话,建一个

Google Spanner原理:地球上最大的单一数据库

Google Spanner简介 Spanner 是Google的全球级的分布式数据库 (Globally-Distributed Database) .Spanner的扩展性达到了令人咋舌的全球级,可以扩展到数百万的机器,数已百计的数据中心,上万亿的行.更给力的是,除了夸张的扩展性之外,他还能同时通过同步复制和多版本来满足外部一致性,可用性也是很好的.冲破CAP的枷锁,在三者之间完美平衡. Spanner是个可扩展,多版本,全球分布式还支持同步复制的数据库.他是Google的第一个可以全球扩展

Google Spanner:地球上最大的单一数据库

Google今年9月透露了跨 地球的分布式数据库Spanner.Spanner的TrueTime API能根据数据中心安装的原子钟和GPS接收器让应用程序在不需要全局同步的情况下在精确时间本地读取数据.<连线>的一篇报道采访了Google知名 工程师Andrew Fikes和Andy Gross,一探Google Spanner内部.文章说: " 同步问题会导致网络和数据库陷入瘫痪,正如NoSQL数据库MongoDB开发商 10gen的总裁Max Schireson所说,如果有大量的

从Google Spanner漫谈分布式存储与数据库技术

Spanner 的设计反映了Google多年来在分布式存储系统领域上经验的积累和沉淀,它采用了Megastore    的数据模型,Chubby的数据复制和一致性算法,而在数据的可扩展性上使用了BigTable中的技术.新颖之处在于,它使用高精度和可观测误差的本地    时钟来判断分布式系统中事件的先后顺序.Spanner代表了分布式数据库领域的新趋势--NewSQL. Spanner 是Google最近公开的新一代分布式数据库,它既具有NoSQL系统的可扩展性,也具有关系数据库的功能.例如,它

中国光纤将打造全球顶级T4级分布式云计算数据中心

中国光纤将打造全球顶级T4级分布式云计算数据中心.目前,该公司附属公司河北四方通信设备正于河北省石家庄市兴建大数据云中心. 项目一期计划于2017年12月投入运营,预期将由中国电信集团公司河北省电信分公司全数承租. 本文转自d1net(转载)

细说分布式数据库的过去、现在与未来

主题简介: 分布式数据库的历史和现状 TiDB架构和特点 分布式数据库未来趋势   随着大数据这个概念的兴起以及真实需求在各个行业的落地,很多人都热衷于讨论分布式数据库,今天就这个话题,主要分为三部分:第一部分讲一下分布式数据库的过去和现状,希望大家能对这个领域有一个全面的了解:第二部分讲一下TiDB的架构以及最近的一些进展:最后结合我们开发TiDB过程中的一些思考讲一下分布式数据库未来可能的趋势.   一.分布式数据库的历史和现状       1.从单机数据库说起   关系型数据库起源自197

2016全球最强数据库大盘点

数据库排名年度盘点 说到盘点,首先肯定得看看DB-Engines的全球数据库排名.下表是2017年1月份前20名数据库引擎最新排名. DB-Engines 2017-01数据库前20名列表DB-Engines 2017-01数据库前20名列表 ​DB-Engines这个排名在业界引用得非常多,权威性也很高,总体来说比较客观,它不像很多咨询机构采用市场调查,或者某个数据库厂商发布的数据,而是通过以下6个方面的统计数据来综合评估各个数据库产品得分并给出综合排名: 数据库相关网站数量(当前通过goog

云时代的分布式数据库:阿里分布式数据库服务DRDS

摘要:伴随着系统性能.成本及扩展性的新时代需要,以HBase.MongoDB为代表的NoSQL数据库和以阿里DRDS.VoltDB.ScaleBase为代表的分布式NewSQL数据库如雨后春笋般不断涌现出来.本文详细介绍了阿里分布式数据库服务DRDS. 随着互联网时代的到来,计算机要管理的数据量呈指数级别地飞速上涨,而我们却完全无法对用户数做出准确预估.我们的系统所需要支持的用户数,很可能在短短的一个月内突然爆发式地增长几千倍,数据也很可能快速地从原来的几百GB飞速上涨到了几百个TB.如果在这爆