7月底,国家工业信息安全发展研究中心发布的2022版《分布式数据库发展趋势研究报告》后,我仔细阅读,从报告中了解到了很多关于国产分布式数据库开发的前沿信息。虽然国外有很多关于数据库产业发展的分析报告,但他们的分析内容大多与中国的数据库产业相去甚远,中国的产业确实需要有自己的国家数据库产业分析报告。

这份报告对国内分布式数据库的发展前景非常乐观。的确,从近年来国内外分布式数据库市场的趋势来看,它的增长也相当迅速。对此,我也有同感。分布式数据库的未来前景非常广阔。特别是在一些特殊需求场景的支持下,分布式数据库比传统集中式数据库更有优势。

虽然国内外行业都认同分布式数据库必将迎来爆发式增长,但分布式数据库在商品中满足用户应用场景需求的特点,才是真正让国内分布式数据库在未来数据库竞争中获得优势的。分布式数据库只有满足用户的使用场景需求,在竞争中表现出真正的优势,才能在未来的数据库竞争中真正获得优势。今天,我将分析国内分布式数据库如何根据分布式数据库发展趋势报告中的一些信息和我所知道的用户需求赢得这场竞争。

多年来,数据库行业一直在讨论选择分布式数据库还是集中式数据库。这种讨论实际上超出了“企业应该选择哪种数据库产品”的话题。由于互联网公司在数据库应用方面的成功,大多数企业对分布式数据库感兴趣。目前,分布式数据库及其在公司中的使用在不同的企业和IT从业者中有两个极端。有人认为企业数据库的应用必须采用分布式数据库,也有人认为分布式数据库不能在自己的企业中大规模应用。事实上,这两个极端是由于知道的。

在讨论国内分布式数据库时,首先要回答一个问题,那就是分布式数据库在企业中解决了哪些问题?或者公司想用分布式数据库解决哪些问题?其实并不是说客户天生就使用分布式数据库,而是用户在选择分布式数据库时必须具备一些集中式数据库无法替代的能力,否则客户的选择就会出现问题。

我和很多金融机构的IT人员谈过他们选择数据库的依据。安全性、可靠性和可扩展性是决定其数据库产品选择的最重要因素。即使这个数据库对SQL句子有一定的限制和一些性能问题,也不是什么大问题,可以通过应用优化来解决。一旦安全性和可靠性得不到保证,金融系统最根本的安全性也会受到很大影响。金融机构关注国内分布式数据库的数据多副本存储和自动故障转移。目前,分布式数据库的三种主要形式在这方面做出了巨大努力。

方式一:分布式中间件单机数据库通过数据库本身的主从复制实现数据的可扩展性;方法二:非对称计算节点分布式存储本身完成了底层分布式存储数据的多份复制,而只阅读备份数据库可以随时快速升级到主数据库,更换无效的主数据库,从而保证数据的稳定性。这种形式与集中数据库非常相似;方法三:原生分布式数据库自然设计成多份复制数据,主机通过分布式选举协议自动选择,实现透明故障转移。OceanBase、TiDB、这种方法用于国内数据库,如HubbleDb。

从这三个方面来看,由于要复制的wal数量,分布式中间件架构和非对称计算节点架构的故障转移时间可以变得不那么固定。如果大量更新发生变化,可能会出现长时间的变换延迟。相对来说,原生分布式数据库在控制复制方面更有优势。对于金融用户的可扩展性需求来说,在30秒内实现主副本的保证转换,甚至进一步降低到10秒以内是非常重要的。

事实上,金融客户要求的可扩展性也是许多其他行业用户选择分布式数据库的主要原因之一。此外,大多数选择分布式数据库的用户都被HTAP的能力所吸引。大量的HTAP应用领域出现在互联网公司和传统公司中。分布式数据库在如何实现AP/TP两种完全不同的工作负载方面具有天然的优势。使用读取副本进行查询和分析,使用租户和任务管理器隔离和提升用户之间的负载。

事实上,安全是一个更大的问题。目前,大多数分布式数据库产品都使用大量的开源代码,因此代码的安全性甚至代码的知识产权合规性都存在很大的风险。对于普通用户来说,这些问题极难掌握,需要我们的管理部门颁布有效的规范和评估方法,以防止没有专业能力的客户判断一些合规性和法律问题。

事实上,这三个挑战并不能满足用户和客户应用领域对分布式数据库产品的需求。客户非常关心分布式数据库产品的文档健全性、可用性、可观察性、运维成本和售后服务水平,这也是目前国内大多数分布式数据库的问题。

另一个限制分布式数据库进入普通人家的因素是成本。目前很多分布式数据库产品的最小部署模块还是太大,只能让一些有钱的客户成为玩家。分布式数据库的小规模化一直是客户的期望,但目前我们很多分布式数据库厂商还是看不到客户的这种需求。目前,在300多个国产数据库诞生的时代,国产数据库在市场上滚动是必然趋势。恐怕我们不能只关注一些有钱的客户。前阵子OceanBase4.0发布的时候,单机分布式数据库已经推出。

还有一个分布式数据库,自然容易微型化,那就是计算节点不对称的分布式数据库。亚马逊的Aurora是这种基于日志的分布式数据库产品的最早例子。今年4月,谷歌还推出了类似结构的AlloyDB。在国内数据库方面,阿里的PolarDB-O/PolarDB-PG,TDSQL腾讯-C/TDSTORE采用了这种结构。尽管这些数据库在高可扩展性方面存在一些不足,但由于其微型化和方便性,在目前的一些用户场景中取得了良好的应用效果。

报告还对分布式数据库的使用场景和生态提出了一些挑战。指出客户服务实验室场景与实际应用场景的性能差异非常锐利。这也是我们用户在具体应用实践中遇到的问题。一些分布式数据库产品在实验室经常有漂亮的测试数据,但在应用实践中效果并不理想。这也是由实际应用场景的复杂性决定的。大多数用户希望数据库能帮助他们处理应用中的问题,而不是增加应用的投入来解决数据库的缺陷。这就需要分布式数据库制造商为NT提供大量的技术手段。、通过OUTLINES等技术手段提高执行计划,通过多模态引擎更容易访问各种非结构化数据,引入DB4AI/AI4DB等技术,可以极大地扩展数据库的使用场景支持,使数据库更容易使用。

最后,开源生态非常重要。开源生态可以弥补国内数据库R&D能力和服务保障能力不足的问题,缓解客户转换为开源数据库的成本压力。因此,我同意“开源是基础软件的唯一途径”的说法。

无论如何,国内分布式数据库要想在未来国内数据库的发展中占据主导地位,就必须下大力气更好地解决客户应用场景的问题,更容易使用,成本更低,观察性更好,售后服务支持体系更强。我认为在目前国内分布式数据库的负责人名单中,最终成功的可能只是一个短名单。