近期,由国家工业信息安全倒退钻研核心公布了 2022 年《分布式数据库发展趋势钻研报告》。 报告从数据库产业倒退、分布式数据库产品价值、面临调整、技术路线、发展趋势、倒退方向等多角度论述了分布式数据库的诸多问题。 本文,从集体角度谈谈对上述钻研报告的解读。
对于作者
韩锋
SphereEx 联结创始人
本文作者韩锋为 CCIA(中国计算机协会)常务理事,前 Oracle ACE,腾讯 TVP,阿里云 MVP,dbaplus 等多家社群联结创始人或专家团成员。有着丰盛的一线数据库架构、软件研发、产品设计、团队治理教训。曾负责多家公司首席 DBA、数据库架构师等职。在云、电商、金融、互联网等行业均有涉猎,精通多种关系型数据库,对 NoSQL 及大数据相干技术也有涉足,实践经验丰盛。曾著有数据库相干著述《SQL 优化最佳实际》、《数据库高效优化》。
背景篇:不鸣则已、一举成名
随同着数字化转型深入,企业对于数据的器重水平逐渐加深。随同着以云计算、5G、IOT、人工智能、区块链等新兴技术的倒退,催着更多新兴数据场景的呈现。这其中直观带来的就是数据规模出现几何级增长、数据结构复杂度与日攀升。
依据第三方机构的预测数据,寰球数据存储量在将来几年将出现爆炸式增长。除去数据规模外,在数据采集、存储、传输、展示、剖析和优化等方面都对数据的载体数据库提出了更高的要求。心愿以此更好地实现企业对数据资产治理、增值与科学决策,数据高牢靠高可用、数据在线剖析等诉求,进一步施展数据价值。上述诉求能够说为数据库提出了更高的要求,但传统数据库架构在超大规模、高并发、实时处理、数据安全等方面显著力不从心,此外昂扬建设老本也难以投合数字化时代的潮流趋势。
相较于传统数据库,新兴分布式数据库的劣势都凸显进去。
一、冲破规模化存储能力
传统单机或集中式架构下,承载的数据规模受限于本地磁盘或可对接的内部存储空间。尽管后者可做到大规模(如 PB 级),但其建设周期长、扩大不灵便、投入老本高且仍然还会面临 IO 的性能瓶颈。而分布式架构数据库,人造具备的数据分片能力,是无效解决超大规模数据承载的利器。
二、冲破高性能计算瓶颈
作为承载计算的次要资源,CPU、内存资源对计算尤为重要。在传统单机或集中式架构下,上述资源仅能通过 Scale UP 形式进行扩大,其扩大能力无限,无奈整合更多资源参加计算。而分布式架构数据库,通过网络可汇聚更多计算资源参加其中,造成更大规模的算力反对。在高并发、高性能计算畛域更有劣势。
三、填补数据分析能力短板
数据分析,是数据应用的重要方向之一,过来通常是由数据仓库等技术承载。这种在线数据库与离线数据仓库的架构,能在肯定水平上解决数据分析问题,但在实时性、一致性、老本等方面存在短板。现实的形式在繁多零碎实现,但传统架构受限于资源,无奈齐全提供。而分布式架构数据库,通过其算力的整合可满足混合负载的业务压力,大幅度晋升剖析时效性,并缩小数据冗余,灵活性大大提高。
四、晋升可用性与安全性
传统架构下,数据库可用性更多取决于单点(或存储),设计上往往通过冗余硬件爱护等形式去晋升;但受限于架构束缚难以达到十分高的可用性。针对数据安全,也通常是通过主备复制、备份等伎俩实现,但难以保证数据在线平安,须要窗口期实现复原。分布式架构具备的存算拆散、多正本、弹性扩大等能力,可无效晋升整体可用性和数据安全。用户可依据须要,灵便调整架构,晋升可用性和安全性。
五、优化老本模型实现按需扩大
传统架构数据库的老本绝对昂扬,这次要是因为其架构限度,向上扩大绝对容易,程度扩大比拟艰难。为了保障疾速的业务倒退,通常在我的项目设计初期就须要按最大容量进行布局或为了更高的可靠性须要付出高额的老本。而分布式架构数据库则不同,其架构人造就反对灵便扩大能力(包含存储、计算),并可实现低成本的高可用解决方案(多正本)。上述能力,将无效升高企业在构建零碎时的投入,特地是在面对疾速、多变业务的场景更是如此。
技术篇:百花齐放、百家争鸣
从上图可见,分布式数据库曾经倒退多年,特地是近些年来曾经逐渐成熟并落地应用。从大的技术路线来看,可大抵分为几种类型:
路线 1:分布式中间件 + 单机数据库
这一技术路线是在单机数据库系统上进行革新,次要解决计算存储的扩展性问题。下层为一组无状态计算节点,基于分片规定提供 SQL 解析,申请转发和后果合并的能力。上层为加强的单机数据库,提供单机数据库的存储和执行能力。这一架构通过数据在逻辑层的切割,可近似线性地对计算性能和存储容量进行扩大,具备可规模化扩大的能力。
路线 2:分布式存储构建
这一技术路线是通过构建分布式共享存储实现扩大,采纳非对称计算节点,大部分私有云数据库是这条路线。这条路线无限地解决扩展性问题,跨地区数据一致性次要依赖分布式存储引擎。共享存储可能跨多个节点提供读写,下层的计算局部是无状态的一组节点组成。当有写能力的计算节点呈现故障时,会主动从可用的读节点中主动选出一个作为写节点,实现写能力的高可用。
路线 3:原生分布式
这一技术路线是原生分布式数据库,各计算节点提供对等的读写服务。这条路线是依据分布式一致性协定做底层设计,与传统数据库有本质区别。原生分布式数据库将分布式存储、事务、计算有机的联合在一起,数据由零碎主动打散并存储多个正本,通过一致性协定保障多个正本和事务日志的一致性,对分布式事务、全局 MVCC 等反对更为彻底。整个分布式构造是包裹在集群外部的,利用对此无感知。
趋势篇:石以砥焉、化钝为利
随着分布式架构数据库在泛滥场景应用,在享受到其带来的收益之外,也对这一新架构产品提出了更多的挑战。 这些挑战也为将来分布式数据库倒退指明了方向。
一、交融化原生设计
如下面谈到的分布式数据库存在不同路线,不同路线产品差别显著。从长期倒退来看,不同路线产品出现逐渐交融的景象,各家各取所长,不断丰富产品能力。一方面相较于单机或集中式架构,分布式架构产品依然存在诸多短板,可了解为根底能力补齐;另一方面用户对于分布式能力也提出了更高的要求,可了解为扩大能力加强。
根底能力补齐
在分布式架构下,相较于单机或集中式架构,仍存在大量短板问题。这些会间接影响到用户的应用体验。如分布式事务的一致性保障问题,对于单机较容易实现的 ACID,分布式环境中呈现了更多的难题。分布式数据库将须要解决的事务进行拆分,再部署到不同的服务器上进行解决,现实情况下,整个过程须要全局一致性协定的爱护,而分库分表两阶段的形式在一些意外状况下容易呈现问题。再比方,分布式架构多采纳存算拆散架构,其人造会带来分层间网络开销问题,如何解决低提早需要值得思考。
扩大能力加强
随着分布式数据库的应用,如何应用好这一架构成为外围。例如在分布式场景下,如何做好数据分片的智能化。分布式通过分库分表进行数据拆分,从而各表的数据量放弃在阈值以下,从而应答高并发和海量数据,但如何高效的、高质量的进行分片,还需再摸索。此外,作为一种新架构产品,分布式数据库所具备的弹性扩缩容、按需扩大、海量反对、多正本细粒度管制等课题,都是值得深刻开掘。
二、负载一体化设计
企业级利用的业务场景通常能够分为联机交易和实时剖析两种,通常称为 OLTP 和 OLAP 的业务利用。因为是不同的利用场景,很多企业往往会抉择多款数据库产品别离反对。这种组合式的解决方案要求数据在不同产品间进行流转,数据的同步过程就带来了时间延迟和数据不统一的危险,而且还会产生冗余数据,老本开销被迫进步,这在肯定水平上限度了企业的倒退。分布式数据库的呈现,为企业解决上述问题带来了契机,这也是近年来 HTAP(混合负载)的衰亡,其旨在突破事务处理和剖析之间“壁垒”。将来分布式数据库都应具备混合负载能力,即在反对高并发、事务性申请的同时,也对剖析型的简单查问提供了良好的反对,实现计算、I/O 资源互不烦扰。通过在线交易和剖析互不影响,一站式地解决企业级利用的各种需要,从而大幅度降低老本,同时进步了企业决策的效率。
三、云与云原生设计
依据寰球出名征询公司 Gartner 指出:“到 2022 年,75% 的数据库将被部署或迁徙到云平台 ……”云化无疑代表了将来。数据库作为 IT 基础设施,如何与云环境交融成为大家的问题。特地是分布式数据库,其架构须要大量资源构建。如何通过与云的联合,无效解决灵便部署、弹性扩缩容、资源管理乃至如何更好地利用云根底资源做到真正的云原生,这些都是分布式数据库须要思考的。因而在分布式数据库产品设计层面就要充沛适配云环境、兼容更多云技术,从而增加更多资源管控、多部署状态、云原生资源利用等云化方面的能力。
四、高可用一致性设计
作为数据库的根本能力要求,服务高可用和数据一致性始终是企业抉择数据库的重点考查要求。特地是随着数字化转型,更多数据参加到企业业务流转中,这些都对可用性提出了更好要求。传统数据库架构,在满足 7×24 小时的服务不中断和数据零失落方面往往曾经超出其可承受能力,或者即便能解决其老本也非常昂扬。分布式数据库具备的分层、多组件、多节点架构成为解决高可用的根底,无效管制故障范畴、被动发现自愈等伎俩可大幅晋升服务可用性。同时,其多正本机制为数据一致性平安提供可能,这也是相较于传统架构的冲破,可做到数据更为精密粒度的一致性,满足各种数据场景下对一致性的不同等级要求。
五、软硬联合异构设计
硬件和软件是信息系统的外围组件,两者之间相辅相成,互相促进。新型硬件的呈现,能够为数据库倒退带来更多的收益。一方面以根底硬件如多核 CPU、异构计算(如 GPU、FPGA)长久化内存、高速网络为代表的硬件呈现,为分布式数据库架构提供更多的设想空间;另一方面新型硬件也会为数据库设计带来更多挑战,如何利用好新硬件值得各数据库厂商思考,甚至会颠覆之前的设计模式。此外,作为要害基础设施,数据库还要为操作系统、芯片的灰度替换提供反对,而在要害行业及软件畛域,数据库还须要提供对异构芯片的反对,从而晋升数字化解决方案的严谨性,升高利用危险。
六、全密态平安设计
以后信息安全曾经回升到国家策略高度,诸多行业监管机构和政府部门对数据存储和应用都有明确的平安合规性要求。2021 年 11 月颁布的《中华人民共和国个人信息保护法》,监管部门已在金融等行业中推广数据加密,要求敏感数据采纳加密的形式进行存储。而作为数据承载主体的数据库,有任务为此提供松软的数据安全保障。那么在分布式数据库设计之初,就需思考在数据传输、数据存储、数据计算等多方面的平安问题。诸如通明数据加密、通明数据传输、多密钥治理、国密算法反对、密态计算等方面,都须要思考。
七、低成本集约化设计
分布式数据库,作为一种新架构产品,对于企业来说会带来不小老本。从治理角度来看,分布式架构对运维人员都带来新的要求,如何治理好成为要点。产品是否提供残缺的治理能力、是否提供齐备的生态工具等,将间接影响最终应用成绩。从资源角度来看,分布式架构须要肯定资源投入,如何规划设计好并通过诸如租户能力无效升高应用老本很重要。
八、高兼容易迁徙设计
对于底层数据库替换,最为头疼的就是数据库的替换。大部分企业通过企业信息化的长期积攒与变革,在外部积攒了大量的业务零碎。传统的企业级数据库产品提供了弱小的能力,帮助开发者疾速便捷地构建应用程序,但同时也导致利用设计适度依赖数据库性能。适配新的数据库产品必须对利用代码进行大量批改。没有两个数据库是齐全一样的,分布式数据库更是如此。其在底层架构、实现逻辑上必然存在差别。比拟好的形式,就是提供高兼容能力,这将有利于大幅升高代码革新老本。
目前大多数分布式数据库还不齐全具备支流数据库生态的兼容能力,兼容的品种还不够丰盛,兼容度还有待进步。此外,分布式架构对于设计上也有着非凡的要求,如何升高研发设计老本,近似通明地屏蔽这一差别很重要。此外,数据从传统集中式数据库迁徙至分布式数据库是一项简单且宏大的工程。从后期兼容评估、利用设计革新,到中期的业务测试、性能测试,领导最终迁徙实现并保障迁徙准确性等,这些都须要提供全流程的反对。这也是目前分布式产品广泛有所缺失的。心愿将来分布式数据库产品将具备全方位、高标准、高可靠性的平滑迁徙能力。
倒退篇:知之非艰、行之惟艰
分布式数据库作为新技术架构,如何推动是须要多方位的反对。从近些年来看,从国家、行业、用户等多方位都给予大力支持。从政策层面,将在作为数据基础设施之一的数据库晋升到肯定高度,重点布局针对数据库分布式转型、利用翻新策略。在行业方面,越来越多的数据库厂商退出进来,特地是以分布式为特色的产品未然成为支流。在用户方面,以金融、电信为代表的高数据价值企业,曾经开始在外围生产零碎逐渐应用。但同时咱们也看到,分布式数据库在推动中,依然存在诸多不足之处,这也是将来需重点关注倒退之处。
一、培养自有生态
数据库要想用好,是须要从“产、学、研、用”多角度思考,是须要跟上下游生态造成合力,能力为客户提供更为残缺的服务。相较于之前国外商业数据库或开源产品,国内数据库生态还须要加大投入,培养自有生态。在这其中,能够通过生态兼容减速这一过程,如何无效利用之前成熟生态值得思考。此外,开源作为一种无效的生态构建伎俩,也是生态化建设的利器。
二、共建行业标准
作为一种新型数据库,分布式架构尚未造成对立的行业标准或者事实标准。从最终用户角度来看,不得不面对纷繁复杂的产品细节,这也妨碍了分布式数据库的大范畴推广。从行业整体倒退角度来看,一方面可通过行业领导单位牵头,由行业内泛滥企业参加造成标准规范;一方面可通过构建标准化评测体系,建设可衡量标准。心愿通过规范的建设,能摸索出特色倒退门路,抓住机遇尽早实现分布式数据库畛域的换道超车。
三、建立专有评测
分布式数据库,作为新产品有其架构特色。对于这一新产品的了解,各家各有不同。行业内亟需对立的评测规范,从多维度评估这一新类型产品。这其中既包含传统数据库的根本能力,也须要蕴含分布式自有特点,如在高可用、备份复原等。逐渐建设其以功能测试、非功能测试及场景化测试相结合,造成齐备的评测体系。
四、填补最初门路
企业更换底层数据库,是一个颇为苦楚的过程,更换为一种全新架构产品更是如此。大量用户应用分布式架构的担心是来自于对新架构、新产品的未知及对施行门路的生疏。前者咱们可通过专有评测规范逐渐相熟,后者则须要通过最初门路的填补做好“最初一公里”。从选型评估、工作量评估、构造数据迁徙、流量切换、上线保障等多角度,造成规范的施行门路将大大减速这一过程。
写在最初
分布式数据库,尚处于倒退晚期,但已出现蓬勃之势。尽管仍有很多有余,但倒退空间微小。这里送给分布式数据库从业者一句话:道阻且长,行则将至;行而不辍,将来可期!