Oracle推出Oracle 18c和自治数据库云,正指出了数据库领域的发展趋势:数据库HTAP化,和人工智能结合,机器学习代替人工完成繁琐的数据库操作。放眼看去,如卡内基·梅隆的ottertune,一些开源项目顺应潮流,向智能化、自动化数据库靠近。
另外,这一年,Oracle发布12c R2版本,也就是12.2.0.1,多方面得到提升,包括:
可用性方面:数据保护、逻辑复制、在线操作、分片等的表现得到提升,同时简化了升级操作。
大数据和数据仓库:完善大数据管理系统结构、提供数据库内的多维度分析、加强查询处理和优化等。
性能方面:优化共享队列,全局共享Oracle云连接池,增强Java虚拟机上Oracle数据库的性能,完善内存数据库,简单支持非结构化数据存取等。
压缩、管理、公有云、安全性、空间和图等特性得到增强。
在数据库的世界里,Oracle依旧是独占鳌头。
2.2 AWS Aurora,启动计算与存储分离的热潮2017年,Amazon在SIGMOD上发表了论文《Amazon Aurora: Design Considerations for High Throughput Cloud Native Relational Databases》。
这篇论文,描述了Amazon的云数据库Aurora的架构。基于MySQL的Aurora对于单点写多点读的主从架构做了进一步的发展,使得事务和存储引擎分离,为数据库架构的发展提供了具有实战意义的已实践用例。其主要特点如下:
实践了“日志即数据库”[1]的理念。
事务引擎和存储引擎分离。
数据缓冲区提前预热。
REDO日志从事务引擎中剥离,归并到存储引擎中。
储存层可以有6个副本,多个副本之间通过Gossip协议可以保障数据的“自愈”能力。
主备服务的备机可达15份,提供强大的读服务能力。
持续可靠的云数据库的服务能力。
数据存储跨多个区:提供了多级别容灾能力。
数据容灾能力:数据冗余、备份、实时恢复等多种能力集成到云服务,提高的数据的保障能力。
万能数据库的概念呼之欲出。
而2017年尾,AWS的技术大会上,又爆料称AWS支持:multi write、类TureTime、Serveless等,这些都和最新的趋势紧密相融,前两者对应分布式数据库、后者对应数据库云化。
Aurora对国内的计算与存储分离的产品研发影响深远,阿里的PolarDB、华为的FusionInsight系列等都在向Aurora对齐。相传,腾讯、京东等都跃跃欲试准备做类Aurora的产品。可见Aurora对国内的影响深远。
2.3 Spanner,引领分布式数据库潮流2012年的《Spanner: Google’s Globally-Distributed Database》论文描述了基于KV系统[2]实现的一个半数据库式的“分布式系统”[3],这个系统具备了大规模的扩展性,具有如下几个方面的特色:可扩展性(scalability)、自动分片(automatic sharding)、容错性(fault tolerance)、一致性复制(consistent replication),外部一致性(external consistency),和数据广域分布(wide-area distribution)。这些特色是通过提供了多行事务(multirow transactions)、外部一致性(external consistency)、跨数据中心的透明故障转移(transparent failover across datacenters)等功能实现的。Spanner开创了NoSQL分布式数据库的新时代,主要解决了如下问题:
1. 数据分布。
2. 多副本高可用:failover。
3. 分布式事务处理:外部一致。
4. 计算分布(通过F1支持SQL,松耦合结构)。
5. KV存储模型。
2017年,Google发表了一篇题为《Spanner: Becoming a SQL System》的论文。这篇论文描述了查询执行的切分(query execution in the presence of resharding)、瞬态故障情况下查询重新执行(query restarts upon transient failures)、驱动查询做路由和索引查找的范围查询(range extraction that drives query routing and index seeks)、以及改进的基于块的列存(the improved blockwisecolumnar storage format)等分布式查询优化技术。
较之2012年的Spanner,本篇论文提到新增功能为:强类型的模式管理系统 (a strongly-typed schema system)、查询处理器(a SQL query processor)和关系模型存储及列存系统,并论述了2012年以来,Spanner系统向关系型数据库演进的历程,新论文愉快地表示Spanner从一个NoSQL系统已经全面演进为了一个关系型分布式数据库系统。
这篇论文表明如下几点事实:
有分布式基因的NoSQL是可以进化为NewSQL的,进化的途径可参考Spanner的发展历程,而Spanner也给出了进化方式的建议(有了分布式处理能力后及早向关系型演进)。
这种进化具有“快乐”的“进步”意义。快乐如论文标题宣称“成为了”一个SQL系统,口气十分地自豪;进步如论文标题宣称Spanner已经是一个“SQL”系统了,即具备了关系存储和关系运算的能力。
NewSQL的一个特征是支持混合数据类型存储,如Spanner支持NoSQL也支持关系存储模型。而支持关系模型将是NewSQL系统的一个重要特征。