火重生的必经之路。
无独有偶,起源于上世纪80年代的Informix,一个全球市场占有率曾经超过10%的元老级数据库,如今也面临着窘境。一个曾经是世界上最好的关系型数据库,却因为企业自身的经营问题,掩盖了技术上的成功。2001年,Informix被IBM公司接管,虽然一直保持更新,但是销售始终不尽人意。终于在2017年5月1日,印度的HCL公司宣布正式接管Informix研发和支持团队,这将重写Informix与国内三家公司的关系。在此之前,IBM公司将Informix授权给了南大通用、华胜信泰和福建星瑞格这三家中国数据库厂商以期合作。现在变数未定。Informix或许再也不能恢复当年的辉煌,但我们有理由相信,一定能够在众多国内知名数据库里看到Informix的影子,看到它的技术精华被传承下去。
其实在IBM公司接管Informix期间,就融合了Informix的技术成就了DB2数据库。到了2017年6月22日,DB2已经 发布了V11.1 Mod Pack 2 and Fix Pack2版本,增强了crash recovery和SQL直接对JSON格式的数据进行操作的能力,包含了更多函数的支持。在DB-engines上,DB2也有着排名第六的不错的成绩。相较Informix,DB2显然更受IBM公司的青睐,但这仍掩盖不了DB2在中国销售不佳的事实(主要集中于金融行业)。DB2因其入门慢、市场推广差,往往不是用户的第一、甚至第二选择。
2017年9月,SAP发布了HANA 2.0 SPS 02最新版本,为支持使用最新内存技术运行业务,主要新增了以下四大功能:一是数据库功能的增强,包括高可用性和灾难恢复等。二是提供了高级分析处理能力,如使用SAP HANA预测分析库(PAL),以简化调用算法的方式加速预测性应用程序开发,并能够使用SAP Web HANA for SAP HANA开发预测性和机器学习模型等。三是应用程序开发和工具增强。四是数据管理功能增强等。但HANA在国内的表现,尚在普通之列。
2.6 一些开源的数据库,前途光明灿烂
开源,是一种成功的商业模式。在开源社区的支持下,众多开源数据库如百花齐放,前途一片光明灿烂,比较知名的如MySQL,PostgreSQL,MongoDB,HBase,Cassandra和MariaDB等等。
让我们来看看2017年,开源数据库都有哪些精彩的表现。
MySQL
-
10月发布最新的稳定版本5.7.20,修复很多bug,针对审计、Docker、安全、插件、复制、参数配置和管理等方面做了更新和调整。
-
日志审计功能增强;安全功能增强;X plugin更新;复制功能增强和更新。
-
修复Docker中MySQL镜像丢失的bug。
-
弃用、去除了一些配置参数,比如tx_isolation和tx_read_only将被弃用。
-
9月发布最新MySQL 8.0.3 RC版本,此版本在账户管理、原子DDL、性能优化、安全等方面做出优化,并且修复了大量bug。
-
支持角色管理,角色是一系列权限的集合,可以给某个用户授予和回收角色,使用角色可以更方便进行权限管理。
-
InnoDB存储引擎支持原子DDL操作,包括表相关DDL和非表相关DDL。
-
采用新的数据字典,所有元数据都用InnoDB引擎存储,以解决DDL的原子性问题。
-
修复历史悠久的bug,8.0版本不再重置auto_increment值。
MariaDB
11月发布最新版本10.2.11,此版本在优化、系统变量、主备复制、存储引擎等方面做出补充和改进。
PostgreSQL
11月发布新版本10.1,PostgreSQL 10的重磅特性有并行计算、逻辑订阅、FDW pushdown和sharding等。
TiDB
10月发布GA版本(TiDB1.0),该版本对 MySQL 兼容性、SQL 优化器、系统稳定性、性能等方面做了大量的工作:
-
SQL查询优化器(调整代价模型,Analyze下推,函数签名下推)。
-
优化内部数据格式,减小中间结果大小。
-
提升MySQL兼容性。
-
支持 NO_SQL_CACHE 语法,控制存储引擎对缓存的使用。
-
重构 Hash Aggregator 算子,降低内存使用。
-
支持 Stream Aggregator 算子。
MongoDB
于2017年10月19日在纳斯达克上市,11月发行最新版本3.6,伴随着MongoDB 3.6的发布,MongoDB Team提供了一个方便开发者的指南社区。新版本主 要提供以下几个功能:
-
Change stream,通过Oplog监听一个集合的DML事件,用来实现pubsub类型的场景。
-
Retryable writes,当集群出现换主现象时,写入操作会被自动重试从而保证应用端的透明。
-
Tunable consistency,MongoDB提供可调的一致性(一致或最终一致),并在query中定义。
-
Greater query and update expressivity,支持操作嵌套数组;提供新的聚合操作符,以及在查询语法中使用聚合表达式。
Apache Cassandra
最新版3.11.1,发布于2017年10月,此版本在完善功能,提高性能等方面做出大量工作,并且修复众多bug:
-
sstableloader忽略“ignore”选项。
-
实现分区边界的short read protection。
-
提升TRUNCATE性能、提升short read protection性能。
-
修复对SuperColumn表的支持。
总体上来看,在DB-Engines 排名top5中,开源数据库就占了三席,分别为MySQL,PostgreSQL和MongoDB。这些开源的数据库,究其成功的根本原因,是在放弃部分著作权的前提下,赢得了三大好处:培养开源社区,获得更大的用户群体;降低该产品和相关产品的技术支持成本;通过开源社区得到更多的衍生作品,提供更好的生态环境。
我们相信,在2018乃至更长远的未来,开源数据库会越走越好。
2.7 CockroachDB,开源NewSQL
CockroachDB是一个分布式类Spanner架构的数据库,通过基于时间戳的MVCC技术,完整地支持了ACID语义。在隔离级别层面,支持SSI和SI,且SSI作为默认级别。
对于SSI,CockroachDB受“write-snapshot isolation[4]”技术影响较大,着力于解决读-写冲突,以实现SSI。
CockroachDB支持外部一致性,支持有限的线性一致性。
2017年10月CockroachDB发布1.1版本,引入了快速并发导入数据的功能,主要做了三方面的工作:
1. 从遗留数据库进行无缝迁移 。
2. 简化集群管理。
3. 为云环境提高性能。
在《What’s Really New with NewSQL?》这篇论文里,如图5,NewSQL被分为了三种类型,Cockr