【 技术硬核 】庖丁解牛 | PostgreSQL与NewSQL大解析(三)

要说NewSQL数据库,我们要先从Google 的F1/Spanner大规模分布式数据库说起。

一、Google F1/Spanner

和众多互联网公司一样,在早期Google大量使用了Mysql。Mysql是单机的,可以用Master-Slave来容错,分区来扩展。但是需要大量的手工运维工作,有很多的限制。因此Google开发了一个可容错可扩展的RDBMS——F1。和一般的分布式数据库不同,F1 对应RDMS应有的功能,毫不妥协。起初F1是基于Mysql的,不过会逐渐迁移到Spanner。
【 技术硬核 】庖丁解牛 | PostgreSQL与NewSQL大解析(三)_第1张图片
F1有如下特点:
1、7×24高可用。哪怕某一个数据中心停止运转,仍然可用。
2、可以同时提供强一致性和弱一致。
3、可扩展
4、支持SQL
5、事务提交延迟50-100ms,读延迟5-10ms,高吞吐
【 技术硬核 】庖丁解牛 | PostgreSQL与NewSQL大解析(三)_第2张图片
Spanner是Google的全球级的分布式数据库(Globally-Distributed Database)。Spanner的扩展性达到了令人咋舌的全球级,可以扩展到数百万的机器,数以百计的数据中心,上万亿的行。更给力的是,除了夸张的扩展性之外,他还能同时通过同步复制和多版本来满足外部一致性,可用性也是很好的。冲破CAP的枷锁,在三者之间完美平衡。
【 技术硬核 】庖丁解牛 | PostgreSQL与NewSQL大解析(三)_第3张图片
Spanner是个可扩展,多版本,全球分布式还支持同步复制的数据库。他是Google的第一个可以全球扩展并且支持外部一致的事务。Spanner能做到这些,离不开一个用GPS和原子钟实现的时间API。这个API能将数据中心之间的时间同步精确到10ms以内。因此有几个核心的功能:无锁读事务,原子schema修改,读历史数据无block。

由于F1/Spanner并不开源,通过现有公开资料仅仅只能窥得F1/Spanner的沧海一粟,所以我们主要通过Google的公开资料的学习和发展自身,这比拿来主义的PostgreSQL要难能可贵的多。关于F1/Spanner,我们之前写过“从Google F1 看HTAP数据库的诞生”。感兴趣可以延伸阅读。

二、F1 Query对于NewSQL的奠基

2018年,Google发表了论文“F1 Query:Declarative Querying at Scale”,意味着对F1/Spanner架构的升级。解决了如下几个核心问题:

1、多种异构的存储平台(Bigtable,Spanner,Google Spreadsheets等)共存
2、不同存储平台上的计算不统一
3、复杂的商业逻辑开始需要实时的分析和数据处理(HTAP)
【 技术硬核 】庖丁解牛 | PostgreSQL与NewSQL大解析(三)_第4张图片
于是F1数据库延伸成了这样一种数据库:
第一,它是独立计算层,底层对接了不同的数据源;
第二,它试图统一OLTP、OLAP和ETL的Workload
第三,它也是一个完整的ETL平台;
第四,它推出了几种访问数据的新形式,UDF、UDA和TVF SQL;
第五,Shading-nothing,这个之后会详细介绍。

一种数据,在完美融合CAP原理之后,又破天荒的解决了同时支持OLTP、OLAP、ETL三种场景的数据库使用。可以说给我们带来了一片“新”天地,应为开创了数据库的“新”纪元。这个“新”,被451 Group的分析师Matthew Aslett命名为“NewSQL”。

三、NoSQL谢幕,NewSQL登场

NewSQL一词是由451 Group的分析师Matthew Aslett在研究论文中提出的。它代指对老牌数据库厂商做出挑战的一类新型数据库系统。NewSQL是对各种新的可扩展/高性能数据库的简称,这类数据库不仅具有NoSQL对海量数据的存储管理能力,还保持了传统数据库支持ACID和SQL等特性。

NewSQL是指这样一类新式的关系型数据库管理系统,针对OLTP(读-写)工作负载,追求提供和NoSQL系统相同的扩展性能,且仍然保持ACID和SQL等特性(scalable and ACID and (relational and/or sql -access))。

NewSQL一经问世,发展至今,已经形成一个庞大的技术family了:
【 技术硬核 】庖丁解牛 | PostgreSQL与NewSQL大解析(三)_第5张图片

你可能感兴趣的:(数据库,mysql,sql,postgresql)