随着数字经济的大力推行,数据量呈现发作式增长, 数据管理模式也发生着急剧的变革, 传统的集中式架构数据库在很多应用场景下显得捉襟见肘, 新型的“分布式架构数据库” 正逐渐成为数据库技术研究和应用的热点。
中国软件评测中心发布的《分布式数据库发展路径研究》报告显示,随着传统的数据库技术日趋成熟、计算机网络技术飞速发展、应用范围扩展,数据库应用已经普遍建立于计算机网络之上,基于此,集中式数据库体系便表现出它的不足之处,诸如:数据按实际需要已在网络上分布存储,再采用集中式处理,势必造成数据传输方面得开销;应用步伐集中在一台计算机上运行,一旦该计算机发生故障,则整个体系受到影响,可靠性不高;集中式处理使得体系的规模和设置都不够灵活,体系的可扩展性差。在这种形势下,“集中计算”概念开始向“分布计算”概念发展。
分布式数据库是数据库技术与网络技术相结合的产物,在数据库领域已经形成了一个分支。分布式数据库的研究始于20世纪70年代中期。世界上第一个分布式数据库体系“SDD-1”是由美国计算机公司(CCA)于1979年在DEC计算机上实现。20世纪90年代以来,分布式数据库体系进入商品化应用阶段,传统的关系数据库产品发展成以计算机网络及多使命操纵体系为核心的分布式数据库产品,同时分布式数据库逐步向客户机/服务器模式发展。分布式数据库是传统数据库技术与计算机网络的有机结合,相比于传统的单机或主备模式的集中式数据库,分布式数据库在平滑扩展、性能、可靠性、可用性、成本、容灾备份等方面颇具上风,特殊是在性能方面,它可以突破集中式数据库的瓶颈,具有很强的研究和应用价值。
极具代表性的应用领域——互联网
互联网行业是分布式数据库首先被重点应用的领域,极具代表性。数据量和体系访问量作为互联网行业的“根基”,对于数据库的选择,是必须考虑的关键问题。随着数据量和体系访问量的增加,依赖纵向扩展的传统数据库架构,采用小型机、磁阵和商用数据库软件的购买和维护成本会越来越高。而采用廉价的PC 服务器、使用当地存储的分布式数据库,可以有效降低用户成本,同时还能带来良好的体系成长性。北京字节跳动科技有限公司(以下简称“字节跳动”)作为互联网行业的龙头企业,对于分布式数据库的运用颇为“讲求”。
字节跳动数据库团队负责人告诉记者,字节跳动自主研发的分布式OLTP(联机事务处理)数据库,支持MySQL、Postgresql、Mongodb等多个开源生态,涵盖抖音、今日头条、西瓜视频等应用,教育、电商、直播等业务线。字节跳动数据库团队负责人透露,未来,字节跳动将结合其自身的工作负载和新的硬件、软件技术打造更多的数据库产品,在字节跳动内部实施更大范围的落地,并逐步开放给其他企业用户。
现在,字节跳动旗下智能科技品牌——火山引擎,已将该数据库提供给外部企业用户使用。由于互联网行业的应用场景繁多且驳杂,包括各种大型促销活动、春节抢票活动、秒杀活动、节日抢红包活动等应用场景,都有短时间内数据并发量激增的情况。如果按照业务峰值提前采购计算资源,肯定会导致资源浪费。对于这一点,OLTP数据库的表现颇为“亮眼”。
字节跳动数据库团队负责人表示,从工作负载上看,字节跳动的分布式OLTP数据库拥有上万个实例,其容量可达到数PB之多,且具备较大的吞吐量。面对短时间内数据并发量激增的情况,OLTP数据库展现出良好的顺应能力。比方,在2021年“抖音春晚红包雨”活动上,OLTP分布式数据库保障了“抖音春晚红包”活动期间“抖音APP”的稳定运行。
“抖音春晚红包雨”活动面对的最大挑战,便是其数以亿计用户的“关系查询”问题。抖音的用户关系数据是抖音产品形态和数据分发的“中枢”,如何存储海量的关系数据并包管在毫秒级内实现并发关系查询效果的反馈,是体系架构领域的难题。对此,字节跳动自研了分布式的“图数据库体系”——ByteGraph,该体系以“图(Graph)中点”和“边数据模型”来应对复杂多样的应用场景需求。
分布式数据库被广泛应用
由于分布式数据库产业发展良好,除互联网领域外,在其他重点行业也拥有诸多成功的应用案例。浪潮集团作为我国顶尖的大型IT企业,其分布式数据库的应用场景广泛,且具备良好的发展前景。
浪潮ZNBase数据库总经理王小虎告诉记者,浪潮自主研发的Inspur ZNBase数据库(以下简称“ZNBase”)已经实现了在金融、工业互联网、政企和智慧校园等行业的应用。ZNBase作为新一代的 NewSQL分布式数据库,参考了谷歌“Span -ner+F1”的设计思想,采用“去中心”架构,让ZNBase具备云原生、多中心、高可用、事务强一致等特性,满足HTAP (混合事务和分析处理)场景需求,有效地实现了对诸多行业的赋能。
对于银行业,ZNBase可布局在银行的反诓骗体系项目中,实现将“商户黑名单风控子体系”及“公司业务事后风险监控子体系”从Oracle/Postgres数据库迁移到“ZNBase DB数据库”中。在金融领域,某信托公司的大数据分析与应用平台项目中,基于ZNBase构建的“同一大数据分布式数据库”与“数据ETL处理平台”,进一步提升了信托业务贷后数据分析能力与羁系报送能力。
在工业互联网领域,ZNBase为某工业互联网大数据中心应用提供的OLTP/OLAP数据服务,以其高可用、高可靠的特性,在工业互联网场景下,实现了元数据管理、多租户权限管理、AI开辟、建知识图谱等功能。
此外,ZNBase还“涉足”政企、智慧校园等领域。王小虎透露,ZNBase已经部署在某市大数据局智慧政务体系及某大学海洋数据中台项目中。
关键特性与显著上风
分布式数据库之所以“备受追捧”,缘于其在各行业领域的关键技术特性方面具备显著上风。北京人大金仓信息技术股份有限公司(以下简称“人大金仓”)总裁杜胜曾发表观点称,任何事物都遵循发展的规律。比方,高质量的发展需要使用资源形成可量化的标准,故而人们不惜一切代价寻求经济规模的持续增长和发展速率。
但我们需要明白,在多个条件限制下实现的经济增长,其实现难度和底子成本的攀升,是整个世界和人类文明可持续发展的肯定选择。
在杜胜看来,软件行业同样遵循这样的发展规则,而这一规律在分布式关系数据库产品设计方面体现得尤为形象。设计集中式关系数据库的出发点,就是要充分使用每一份资源,但由于资源本身具备上限,即使可以或许支持数据库的垂直扩展,也很轻易达到资源瓶颈。而分布式数据库的最大上风就是可以平滑地进行节点扩展,这样使得在体系运行初期,分布式数据库临时不需要规划部署大量机器,随着业务增长,可动态增加节点,提升整体存储容量和处理性能,同时实现业务无感知的平滑扩容,以满足业务连续性要求。这种扩展能力,使分布式数据库通过机器横向堆叠实现存储容量和处理性能的提升,突破了集中式数据库由于硬件设置带来的存储和性能限制,以满足海量数据存储和高并发处理要求,可以达到几十万级 TPS、百万级 QPS 以上的处理性能。
《分布式数据库发展路径研究》报告显示,分布式数据库一般基于通用的 PC 服务器和操纵体系,数据也存储在当地磁盘中,其硬件成本,比传统小型机和高端磁阵有显着上风。特殊是在节点扩展到肯定规模后,不但实现了集中式数据库无法实现的高并发,而且单个事务处理消耗的成本也会比集中式数据库显著降低。
通常,分布式数据库都会采用多副本机制,一份数据在多个节点上保存,副本间通过Raft、Paxos等一致性协议包管数据一致性。当某个节点或者部分节点故障时,数据不会丢失,上层业务不受影响。在多地多活的分布式方案中,分布式数据库亦可以实现分布式单元化架构,包管数据一致性的条件下,向外提供稳定可靠高效的服务能力。分布式数据库的多副本机制实现了体系的容灾能力,提升体系可靠性。
挑战与对策
只管分布式数据库具备独特的技术应用上风,但其发展也面对一系列问题。对于分布式数据库来说,其最大的挑战便是办理各个节点状态的同步问题。
根据分布式体系的“CAP 理论”,不存在一个分布式体系,既能包管数据一致性(C),也能包管可用性(A),还能包管分区容错性(P)。所以通常情况下,一般的分布式数据库会选择“CA”或者“CP”,或者牺牲一部分“C”来调换“A”的提升。
在分布式体系中,由于网络可能会出现延长、丢包甚至中断等问题,导致分区容错性是必须要实现的,但是不同的应用体系对一致性、可用性和性能的要求各不雷同,因此企业需要在一致性和可用性之间进行权衡。在杜胜看来,在分布式产品方面,现在行业内大多数企业的思路是在保障高可用性的条件下,更好地满足架构的弹性、伸缩性,这种思路可以在单节点服从不高的情况下,通过不停增加节点算力来提升吞吐量,继而支持线性扩展。简单来讲,这是一种“大力出奇迹“的思路,只管采用不停堆叠算力的方式,可以办理整体问题,但这样的设计思路却并不完美,因为单节点的低效和节点间协同所带来的资源浪费也是显而易见的。
在字节跳动负责人看来,产品方面,企业需要从多个角度分析。字节跳动负责人告诉记者,在字节跳动的架构中,存储层采用了Quorum协议,所以在数据库访问存储方面具备强一致性,而对于用户侧,除非用户有强一致性的需求,需要强制访问数据库的主节点,否则只对用户提供最终一致性的包管。“由于一份数据会以多个副本的情势存储在多个网络分区(可用域),在分区容错性方面,会在体系出现单分区网络故障时,包管分布式数据库体系的分区容错性。”字节跳动负责人说。他强调,如果数据库服务不可用,可能会导致前端业务失能,最终影响用户体验,所以包管体系的高可用性至关重要。
王小虎介绍,针对CAP原则中的分区容错性,其ZNBase采用增强型RAFT共识协议来包管分区的强一致性,使用网络分区将原先的“Leader节点”和“Follower节点”进行分隔,若“Follower节点”无法收到“Leader节点”的信号,体系便会“推举”产生新的“Leader节点”,介时便形成了双“Leader节点”的状态。由于原先的“Leader节点”独立在一个分区中,故而向其提交的数据便不可能复制到多数节点,最终无法实现提交。然而,“Follower节点”却可以向新的“Leader节点”成功提交数据,当网络恢复正常后,旧的“Leader节点”发现集群中有了新的“Leader节点”,便自动降级为“Follower节点”并从新“Leader节点”处进行数据同步,最终达成集群数据一致。
NewSQL 分布式云数据库
针对CAP原则中一致性与可用性的权衡问题,王小虎透露,ZNBase主要提供以下几种方案,满足客户各种服务以致同一服务下各种应用场景对数据库一致性和可用性的差异性要求:
■读取“节点”满足可用性
采用设置数据就近读取的模式,在多数据中心的部署场景下,让应用毗连近来的数据中心,得到其最新的数据。
■“强同步副本”满足一致性
采用“两数据中心三副本”模式,该模式可实现当某一数据中心出现故障后,另一数据中心继续对外提供服务;“Leader节点”进行日志提交时,不但需要提交日志,还需要强同步副本提交日志,以实现在恣意时间段内,两数据中心同步读取到最新的数据。
■块设备同步(DRBD)方案满足一致性
DRBD是在“存储设备层+网络层”实现高可用集群的资源代理(RA),一旦其中一个节点宕机,资源便会自动转移到另一个节点,从而包管服务的连续性。
公道选择分布式数据库
随着技术的不停演进,在市场中,种类繁多的分布式数据库体系不停涌现,选择一款实用、公道的分布式数据库体系至关重要。针对不同应用场景,选择与之对应的使用模式,是浪潮ZNBase决胜的关键。
在浪潮ZNBase数据库总经理王小虎看来,使用ZNBase“多副本+地理分区标签”的特性,将数据调度到不同的机房、机架、机器,可以有效保障数据的一致性、可靠性,同时满足体系高可用性、可扩展性、容灾性。当部分机器出现故障时,ZNBase可以帮助分布式数据库体系实现自动切换,确保其RTO(恢复时间目标)不高于30s ,RPO (复原点目标)归零;针对数据存量、增量较大的应用,可使用ZNBase将所有的数据库整合成一个逻辑同一的数据库,以实现降低应用开辟复杂度、提高应用开辟灵敏性的效果;对于源数据库为POSTGRES(关系型数据库)或GP(MPP数仓)的部分用户来说,ZNBase可帮助其实现“一键迁移”。
现在,ZNBase已实现将“列式存引擎”与“行式存储引擎”相结合,构建出HTAP(混合事务和分析处理)数据库,实现在同一个体系中进行联机交易处理、实时数据分析,抛弃了原有数仓作业中耗时巨大、操纵重复的ETL处理流程,极大地节省用户的成本。无独有偶,在字节跳动看来,分布式数据库的选型,需要考虑以下四点。
第一,应用对数据模型有无特殊要求,是否要求关系型模型/key-value模型/图模型。
第二,应用访问数据库的逻辑是否有特殊性,其使用的SQL语法是否能得到100%的支持。
第三,应用访问数据库的工作负载有何特点,读取和写入的占比多少,读取、写入QPS有无较明确要求。
第四,可预测时间范围内,应用的数据存量和数据增量。
结合AI技术实现分布式架构
杜胜以为,采用分布式数据库首先要明确的一个条件共识:明确的规则是提高群体工作服从的底子,混乱实用于创造,秩序才能提高服从。所以,提供明确的业务规则并没有错,错的是这些规则无法随着外部情况的变革而随之自动变革,当情况发生改变时,静态的规则便难以为继。
诚然,企业在最初赋予体系规则的阶段,是依靠以往的经验总结出来的,体系在运行过程中不停对各类访问举动进行收集和分析,并自动对已有的、不顺应的规则进行调整,并重新对各个节点进行分工,同时调整节点的增减,这一切的工作都由分布式数据库进行统筹和安排。当外部情况发生变革时,依靠节点间的协调和沟通,发现并执行规则,以提升处理服从。企业需要在整个分布式关系数据库架构中增加规则的智能管理节点,节点在体系运行过程中不停收集、观测访问举动,同时将计算和存储分离,存储节点根据规则重新分布数据,计算节点则根据业务热点将多个存储节点的数据汇聚并进行缓存。
杜胜说:“结合AI技术的分布式架构,本质上是分布式关系数据库数字化和智能化的实现。该架构一旦在实际项目中应用,体系会随着运行时间的增加,不停提高规则的顺应性,继而提高整个体系服从。”
应大力发展分布式数据库的技术、产品、生态
随着分布式数据库在各行各业中的应用日益广泛,促使产品技术不停迭代,诸多挑战将逐一被攻克。未来,随着分布式数据库标准体系及评价体系的健全,分布式数据库产品的生态体系也将逐渐美满,在运维保障、数据迁移、运行监测等方面的配套工具也将逐步成熟。
《分布式数据库发展路径研究》报告建议:现在,国内绝大部分数据库企业均推出了分布式数据库产品,我国分布式数据库发展基本与国际同步,在一些技术指标和应用层面处于领先水平,而且互联网、金融等领域应用场景对分布式数据库具有切实需求,当前应大力发展分布式数据库的技术产品,加快行业应用,促进数据库产业高质量发展。
对于分布式数据库产业的发展,营造情况,打造分布式数据库的生态体系是重中之重。从产业发展角度来看,相比于集中式数据库,分布式数据库还处于发展的初期,技术体系、标准规范、测评机制、产品推广等方面尚不健全。第三方研究和服务机构应起到带头作用,联合推进技术标准、测评认证、迁移验证、示范试点等工作,共同营造良性的分布式数据库生态体系。现在相关企业发起了国产数据库的开源社区,并形成了部分商业发行版产品,这大概是建设分布式数据库生态体系的新思路。
声明
转载、添加白名单以及商务相助请在公众号文章留言,未经答应、不得转载,不得随意修改及盗用原文。
中国信息化周报(信息化时代)
官网:www.cio360.net |