既然,原生分布式数据库是未来主流选择,那么,原生分布式数据库又该怎么选?
在报告给出的分布式数据库九大发展趋势中,我们可以得到一些启示。九大趋势如下:
1、 分布式数据库走向原生设计
2、 分布式数据库架构的设计走向一体化
3、 分布式数据库的能力将向混合负载发展
4、 分布式数据库的场景将向云化发展
5、 分布式数据库的高可用能力不断在提升
6、 分布式数据库对数据一致性的支持将日臻完善
7、 分布式数据库的生态建设亟需推动
8、 分布式数据库需要支持异构芯片的混合部署
9、 分布式数据库应支持数据透明加密
其实,大部分趋势在不少研报中曾多次出现,比如:云、生态、加密等,很多人都有所了解,并不难理解,因此,这里只聊三点:
点,数据一致性
众所周知,数据库重要的就是保管好数据,数据不能丢失,这是基础,如果连这一点都做不到,其它的都是白搭。
报告指出,在可靠数据库管理系统中,事务应该具有四个特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。以往在处理单一事务时,事务的原子性和持久性可以确保在一个事务内,操作多条数据要么都成功,要么都失败。这样在一个系统内部,可以使用数据库事务来保证数据一致性。
但是,在微服务日益广泛的今天,一项操作会涉及到跨多个系统、多个数据库的时候,用单一的数据库事务就没办法解决了。并且,数据一致性不仅指在事务发生时的数据一致性,还需要考虑到主备副本之间、集群之间的数据一致性,以及是否有类似区块链似的校验,具备防篡改的能力和应对磁盘静默错误的能力。需要注意,这里其实提到了数据一致性的四条防线:
1、 数据多副本一致
2、 区块链级校验(防篡改)
3、 存量数据一致性主动校验
4、 磁盘静默错误防御
目前,从整个数据库行业看,不论是Oracle、MySQL还是其它大多数数据库都没有校验主备副本之间的数据一致性。而四道防线都能做到的就更少了。
第二点,一体化架构
什么是一体化架构?能解决什么问题?这是以往的一些分布式数据库研究报中没有出现过的一种新趋势。
报告指出,一体化设计思路是将传统商业数据库的强大单机能力与分布式融合,将多种负载能力在一套数据库上融合,甚至将多种兼容能力体现在一套数据库中。这些是国内重点行业的企业迫切需要的,能够为企业节省大量的迁移适配成本。
从分布式数据库的3种技术路线来看,前两条技术路线并不是真正一体化架构,只能说是分布式中间件或分布式系统,第三条技术路线(原生分布式)才是一体化。
而一体化之后性能、易用、兼容等各方面都会有显著提升,接下来要说的第三点就是如此。
第三点:HTAP
HTAP并不是什么新概念,自从2014年,Gartner提出 HTAP(Hybrid Transaction / Analytical Processing,混合事务分析处理)概念之后,HTAP就一直被热炒,因为确实有场景支持,所以,也备受关注,因此,号称HTAP的数据库产品也越来越多。
但什么才是真正的HTAP?是近年来特别火的话题,并不是具有同时处理TP 和AP的能力,就是HTAP数据库。
目前,比较主流的观点是,真正的HTAP,是高度融合的一个系统。这里需要注意,高度融合的一个系统,不是把两个不同的系统拼接在一起形成所谓的一个系统。这并不符合“一份数据”的要求,本质上还是使用两个系统,成本必然大幅上升,并且系统后续的开发和运维,也会有各种问题。另外,这种系统是无法保证对事务的支持能力、数据实效性的。
真正的HTAP,一定是基于一体化架构。当然,这种架构在技术上实现难度更大。但对事务的支持能力和数据的实效性等方面都能提供更好的保证。
后,总结一下,可以预见的未来,更多的数据库产品终会走向原生分布式的技术路线,未来原生分布式数据库才是主流选择。而原生分布式数据库到底应该具备怎样的能力?该怎么选?目前,在国内还没有明确的体系标准,但是,我们透过一些研报能发现一些关键指标的,这点在选型时,需要注意。