【IT168 技术】大多数人认为MySQL集群是一种分布式的、高性能、高可用性且流行性高的开源数据库。但追溯其根源——早在2003年MySQL数据库确定之前——集群就被称为NDB(网络数据库),它是主要为电信公司设计的NoSQL架构的内存数据库。
根据甲骨文相关介绍,MySQL集群在流行之前是设计成NoSQL和内存数据库的。如今,MySQL集群7.4版本已开始回归最初的设计特性。项目副总裁Tomas Ulin表示,MySQL集群非常超前,其SQL查询功能和基于磁盘的表必须在预期时间内添加到数据库中。
远不如2003年期间许多企业重载数据那般现象,如今电信公司已经完全被覆盖。NDB提供了一个高性能、NoSQL型CRUD(创建、读取、更新和删除)接口,以适应其应用程序的需求。
“在大家开始谈论NoSQL之前很长一段时间,我们就开始了此项目。”Ulin在一次电话采访中提到,“我们添加了一个sql查询层,以满足大家希望能够处理已熟悉的复杂的查询的需求。”至于MySQL集群的内存架构,也早已不再是2003年的那般热门话题。事实上,大多数人对于内存限制和基础设施成本两块都有所顾忌。
“客户抱怨满足不了整个数据集的内存,所以添加了基于磁盘的表和属性。”Ulin说。举个例子,此前发布的MySQL集群7.4,已经升级到可在32核处理器上运行,每节点56个处理线程以及高达256 gb的RAM。
根据Ulin介绍,电信运营商并不是只处理特定的表或在内存数据库中处理所有的数据。移动应用、游戏应用及电商app开发者也选择使用MySQL集群,看中其低延迟和高吞吐量两大特性。
不过,请不要混淆,甲骨文方面提供了两个其他内存性能的选择。去年,Oracle数据库添加一个内存选项,但是该特性的柱状存储主要针对加速分析应用程序。而MySQL集群是连续存储,所以它只针对低延迟事务性应用程序。Oracle还提供TimesTen,一种内存数据库,同样也用于电信应用程序中。只不过,这种产品通常是用作嵌入式数据库或置前于Oracle数据库的一个缓存层。
▲MySQL集群提供SQL查询和NoSQL访问分布式数据库中的数据
此外,MySQL集群7.4还支持改善geo-redundancy——跨多个地理上分散的数据中心复制的能力。支持双控复制多个数据中心,7.4为解决冲突的事务回滚提供了主要支持。这样一来,开发人员可以把读写数据发送至分散的数据中心,而不必担心一致性问题。
“美国电信公司通常有三个数据中心:一个在美国东部,一个中央位置,另一个在美国西海”Ulin解释道。“我们这样做,以确保7.4版的可用性。通过加强了各种功能,确保更新所有数据中心时一致性的问题。”Geo-redundancy特性如同Cassandra一样,是NoSQL数据库的一张名片,但是Ulin表示这些平台对MySQL集群ACID-compliant和低延迟性不在考虑范畴内。
“我们提供给客户高性能NoSQL接口与强大的相同数据的SQL查询功能,给予客户两全其美的选择。” Ulin说。
在其他性能升级方面,MySQL集群7.4支持更快的表扫描来提高查询性能,节点重启速度加快了五倍。这样一来,管理员可以在发生故障或计划的维护时以最短的实际停机检查。节点规模成倍增长,这在目前看来也是特别重要的表现之一。集群7.4还提供了新的分布式内存使用情况报告,管理员可以看到内存在机器和数据表上的不同使用和分配情况。
MySQL集群7.4立即可用,其所涉及的产品仍不太可能同时作为如SAP Hana的内存数据库或如Cassandra的分布式NoSQL数据库。但有趣的是,MySQL集群提供了更广泛的适用性和更现代的性能特征。