您现在的位置是:首页 > IT基础架构 > 计算存储 >

分布式数据库走到拐点

2021-07-06 16:57:38作者:毛烁来源:中国信息化周报

摘要随着数字经济的大力推行,数据量呈现爆发式增长, 数据管理模式也发生着急剧的变化, 传统的集中式架构数据库在很多应用场景下显得捉襟见肘, 新型的“分布式架构数据库” 正逐渐成为数据库技术研究和应用的热点。 ...

随着数字经济的大力推行,数据量呈现爆发式增长, 数据管理模式也发生着急剧的变化, 传统的集中式架构数据库在很多应用场景下显得捉襟见肘, 新型的“分布式架构数据库” 正逐渐成为数据库技术研究和应用的热点。 



中国软件评测中心发布的《分布式数据库发展路径研究》报告显示,随着传统的数据库技术日趋成熟、计算机网络技术飞速发展、应用范围扩展,数据库应用已经普遍建立于计算机网络之上,基于此,集中式数据库系统便表现出它的不足之处,诸如:数据按实际需要已在网络上分布存储,再采用集中式处理,势必造成数据传输方面得开销;应用程序集中在一台计算机上运行,一旦该计算机发生故障,则整个系统受到影响,可靠性不高;集中式处理使得系统的规模和配置都不够灵活,系统的可扩展性差。在这种形势下,“集中计算”概念开始向“分布计算”概念发展。
分布式数据库是数据库技术与网络技术相结合的产物,在数据库领域已经形成了一个分支。分布式数据库的研究始于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节点”处进行数据同步,最终达成集群数据一致。

针对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技术的分布式架构,本质上是分布式关系数据库数字化和智能化的实现。该架构一旦在实际项目中应用,系统会随着运行时间的增加,不断提高规则的适应性,继而提高整个系统效率。”

应大力发展分布式数据库的技术、产品、生态

随着分布式数据库在各行各业中的应用日益广泛,促使产品技术不断迭代,诸多挑战将逐一被攻克。未来,随着分布式数据库标准体系及评价体系的健全,分布式数据库产品的生态体系也将逐渐完善,在运维保障、数据迁移、运行监测等方面的配套工具也将逐步成熟。

《分布式数据库发展路径研究》报告建议:目前,国内绝大部分数据库企业均推出了分布式数据库产品,我国分布式数据库发展基本与国际同步,在一些技术指标和应用层面处于领先水平,而且互联网、金融等领域应用场景对分布式数据库具有切实需求,当前应大力发展分布式数据库的技术产品,加快行业应用,促进数据库产业高质量发展。对于分布式数据库产业的发展,营造环境,打造分布式数据库的生态体系是重中之重。

从产业发展角度来看,相比于集中式数据库,分布式数据库还处于发展的初期,技术体系、标准规范、测评机制、产品推广等方面尚不健全。第三方研究和服务机构应起到带头作用,联合推进技术标准、测评认证、迁移验证、示范试点等工作,共同营造良性的分布式数据库生态体系。目前相关企业发起了国产数据库的开源社区,并形成了部分商业发行版产品,这或许是建设分布式数据库生态体系的新思路。


(本文不涉密)
责任编辑:

站点信息

  • 运营主体:中国信息化周报
  • 商务合作:赵瑞华 010-88559646
  • 微信公众号:扫描二维码,关注我们