简单梳理跨数据中心数据库

有2年没有摸数据库了,重新学习下。数据库是IT系统的基石,小到一个个人站点,大到类似Google,阿里,腾讯这种大公司,里面都运行着各种各样的数据库,成千上万的人才还在继续开发和维护数据库。

数据库大牛stone breaker前两年还拿到了图领奖,了不起的成就。数据库理论这些年没啥大的突破,还是70年代提出来的关系模型,ACID等等。不过不表示数据库的发展停下来了,尤其是随着需要处理的数据和业务越来越大,数据库规模,性能越来越强。数据库的发展主要体现在工程能力,新硬件的使用上。

我个人理解就当前而言,技术难度最高,最拿得出手的还是Google的spanner,Spanner 是Google的全球级的分布式数据库 (Globally-Distributed Database) 。这个太牛了,技术+工程实现能力+基础设施都要到达一定的规模和量级才能催生这样一种数据库出来。

下面简单介绍下Google的Spanner,到现在为止应该都只有论文,没有公布实现:

Google的Spanner是个可扩展,多版本,全球分布式还支持同步复制的数据库。他是Google的第一个可以全球扩展并且支持外部一致的事务。Spanner能 做到这些,离不开一个用GPS和原子钟实现的时间API。这个API能将数据中心之间的时间同步精确到10ms以内。因此有几个给力的功能:无锁读事务, 原子schema修改,读历史数据无block。

Google在12年公布了spanner的论文之后,受到启发的团队和公司就不少了,比较有名气的就是TiDB和CockroachDB两家。

一、CockroachDB

CockroachDB的思路源自Google的全球性分布式数据库Spanner。其理念是将数据分布在多数据中心的多台服务器上,实现一个可扩展,多版本,全球分布式并支持同步复制的数据库。2012年Google公布了Spanner的论文,但是这个项目本身是不开放的。CockroachDB(创始人并不是Spanner项目参与者)的出现改变了这一点,其目标是CockroachDB打造一个开源、可伸缩、夸跨地域复制且兼容事务的ACID特性的分布式数据库,它不仅能实现全局(多数据中心)的一致性,而且保证了数据库极强的生存能力,就像Cockroach(蟑螂)这个名字一样,是打不死的小强。

1、CockroachDB是在2014年下半年推出了Alpha版,只实现了规模很小的一个功能子集。

2、Cockroach Labs是CockroachDB母公司,由前Google软件工程师Spencer Kimball、Peter Mattis以及Ben Darnell成立于2015年,总部位于美国纽约。现有员工30人左右。

3、CockroachDB母公司Cockroach Labs获得融资历史:

2015年A轮625万美元

2016年A1轮2000万

2017年2700万美元

总共5325万美元。

4、CockroachDB选择拥抱的是postgresql的生态,选择兼容的接口是postgresql,只支持一部分SQL接口,尤其是postgresql扩展能力是不支持的。

5、百度选择了CockroachDB,华为也有小部分人在研究CockroachDB

二、TiDB

1、TiDB也是受spanner启发,和CockroachDB选择不同的是,基于MySQL开发,兼容的是MySQL接口。

2、资深 Infrastructure工程师刘奇,黄东旭开发出了新型开源分布式关系型数据库 TiDB ,2015年拿到风投后成立了PingCAP。

3、腾讯选择支持Tidb,在腾讯云上集成了Tidb,服务名称叫HTAP数据库。

https://cloud.tencent.com/product/tidb?from=timeline&isappinstalled=0#userDefined10

4、PingCAP B轮拿到了1500万美金的投资。

三、Oceanbase

准确的说,阿里的Oceanbase和前面两个不太一样,瞄准的也不是跨数据中心,而是单数据中心的数据库的扩展。架构上也是将查询引擎,存储引擎分开,底层的存储引擎基于Paxos协议来保证可靠和一致性,这里就不展开说了。阿里云上当前主推的是类似AWS Aurora的POLARDB。

阿里云为什么没有推跨DC的TiDB或者CockroachDB,或者将自己的Oceanbase扩展一下,做到跨数据中心。特意问了下阿里数据库云的一个负责人,他的意见主要目前跨DC还是限制太多(功能、时延),场景有限,没有业务买单,可替代性太强了,所以现在还在观察中。

四、写在最后

总的来说,我比较同意阿里同学的意见,硬件发展没有跟上,数据中心时延不解决,目前的跨DC时延数据库很多功能都无法实现,只能服务于特定场景和诉求,只有一些特大体量的业务和公司,特定场景才需要;但总的来说,未来这是个发展趋势,会有成熟的一天的。

原文发布于微信公众号 - 大数据和云计算技术(jiezhu2007)

原文发表时间:2017-10-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏云计算D1net

云计算:拼的是运维

云计算的IaaS、PaaS、SaaS最后那个S都是Service。就是说,无论你云计算长成什么样,都得要向用户提供“服务”而不仅仅是软硬件和各种资源。 【云计算...

3879
来自专栏JAVA高级架构

余额宝技术架构及演进

导读:余额宝开启了划时代的意义,开启了全民理财时代。上个月微博商业产品部联合天弘基金等金融技术团队策划了首届互联网金融系统沙龙,围绕在互联网金融过程中碰到技术架...

1065
来自专栏云计算D1net

向云计算迁移不得不考虑的问题

把应用程序迁往云计算这一工作将对网络需求产生很大的影响,从而影响云计算成本。“所用即所付”是云计算供应商们所常用的一种诱人的流行销售说辞,而CIO们也往往...

2718
来自专栏鹅厂网事

大数据在服务器运营中的应用

前言 腾讯公司从2012年开始,通过对服务器运营流程、工具系统的建设,服务器从一线到三线的运营基本转入线上自动化。在服务器静态配置、动态的运行状态和生命周期各个...

2377
来自专栏腾讯大讲堂的专栏

大数据在服务器运营中的应用

腾讯公司从2012年开始,通过对服务器运营流程、工具系统的建设,服务器从一线到三线的运营基本转入线上自动化。在服务器静态配置、动态的运行状态和生命周期各个节点的...

22810
来自专栏Java架构沉思录

Redis 深度历险:核心原理与应用实践

Redis 是互联网技术架构在存储系统中使用最为广泛的中间件,它也是中高级后端工程师技术面试中面试官最喜欢问的工程技能之一,特别是那些优秀的、竞争激烈的大型互联...

2052
来自专栏人称T客

云存储详解,企业数据该如何上云?

1615
来自专栏华章科技

2017年,大数据工程师应该如何充实自己的专业工具箱

在实时计算领域,Apache Storm、Samza、Spark Streaming、Kafka Stream、Flink 等开源流式计算引擎层出不穷,呈现百家...

663
来自专栏云计算D1net

优化互联网的边缘计算

在任何数据中心环境(无论是本地部署、分布式数据中心设施,还是服务于边缘的区域或微型数据中心设施)中管理电力使用情况都可能非常复杂。

650
来自专栏大数据文摘

Cloudera正在重建机器学习方法

1418

扫码关注云+社区