技术搭桥,开源铺路:分布式数据库的辉煌时刻

发表时间: 2022-01-14 11:04
1月6日,由中国电子技术标准化研究院指导、CSDN主办、OceanBase承办,木兰开源社区、开源中国、51CTO、思否、极客邦科技、稀土掘金、墨天轮、dbaplus协办的DC2021分布式数据库开发者大会于线上正式召开。
除了精彩纷呈的主论坛演讲、圆桌论坛与极客夜宵等内容之外,在下午的分布式数据库技术分论坛与分布式数据库开源生态与应用分论坛上,来自国内外主流分布式数据库的技术专家与各大开源社区、平台负责人为开发者带来了围绕核心技术与开源生态打造的内容盛宴。

分布式数据库技术分论坛
今年是数据库发展的变革之年,亦是分布式数据库崭露头角的重要时间节点。分布式数据库技术在走向千行百业应用深海的大势所趋下,越来越多的开发者关注于此,投身其中。下午14:00,DC2021分布式数据库开发者大会分布式数据库技术分论坛正式开幕,来自OceanBase、GaussDB、PolarDB、巨杉数据库、StarRocks、Oushu科技数据库以及MongoDB社区的8位产品技术专家,针对分布式数据库领域最新的技术亮点与产品革新进行了深度分享。
一、OceanBase的一体化设计
OceanBase首席架构师杨志丰分享了主题为《OceanBase的一体化设计解析》的演讲。OceanBase从2010年立项以来,其架构的演进一直围绕可扩展与高可用特性去建立与融合,这也是为什么OceanBase会采用一体化设计的直接原因。OceanBase的一体化设计主要有四大方面:第一,OceanBase能够兼备集中式数据库和分布式数据库的特性;第二,通过借鉴OLAP型数据库的特性,不断增强OceanBase的AP能力,从而形成了HTAP的能力特性;第三,通过多租户能力,OceanBase在整个集群内部已具备资源的管理调度和隔离能力;最后一方面,OceanBase具备多模特性,可以更好地支持客户SQL与NoSQL使用场景。
在演讲中杨志丰介绍了OceanBase基于存储模型与事务模型基础提供的Table API接口,这个接口是和SQL在平行的一个位置和层次。在Table API基础之上,如果应用对延时特别敏感,用户可以直接通过Table API访问OceanBase Server提供的原生服务,极大地减少网络的时延。同时针对某些需要使用HBase特定业务场景,基于Table API接口OceanBase研发团队还扩展了一个HBase API接口,解决了用户在容灾演练过程中遇到的困难。
杨志丰还介绍了OceanBase最新的3.2版本,3.2版本提升主要体现在三个方面,优化器、SQL执行引擎以及向量化的执行。杨志丰表示:对于单机分布式一体化的OceanBase系统来说,我们认为时延不再是一个选择传统亦或是分布式数据库的绝对标准,因为在OceanBase单机分布式一体化的设计之下,你可以选择鱼与熊掌兼而得之。
二、GaussDB分布式技术的架构实现
华为GaussDB技术专家王磊带来了《GaussDB分布式技术大揭秘》主题演讲。GaussDB分布式集群的架构主要由5类组成:运维管理模OM组件、集群管理模块CM组件,全局事务管理器GTM组件、协调节点CN组件以及数据节点DN组件。GaussDB高性能的关键在于分布式执行框架,这个框架会根据业务SQL,生成最优执行计划,该框架主要包含算子下推与并行执行两大核心技术。
GaussDB有四大特性:第一是高扩展性,体现在Scale-out在线横向扩展;第二是高安全,体现在分布式防篡改技术;第三是高自治性,主要体现在AI for DB基础上;第四是高智能性,主要体现在AI4DB技术上。
GaussDB高可用架构的出发点是软硬件全栈冗余和分布式全组件冗余。在硬件层通过磁盘red冗余、双交换机冗余、多网卡冗余,UPS电源保护等技术提供单点或多点硬件故障下的高可用能力。在软件层,针对分布式集群中的每一帧组件,均做了组件级冗余。
王磊表示:GaussDB在分布式数据库领域的积累和创新,使其能够从容应对企业级高性能、高可用、高安全的核心诉求。未来,GaussDB会继续在分布式数据库领域坚持创新,勇攀高峰。
三、云原生+分布式的现代化数据库—PolarDB-X
阿里云智能数据库PolarDB产品经理胡中泉发表了《PolarDB-X核心技术能力解读》主题演讲,在演讲中他主要介绍了PolarDB-X的整体架构以及核心能力。
PolarDB是一款基于分布式技术架构,是面向云原生和分布式结合的方向进行技术演进的分布式数据库产品。PolarDB-X整体架构主要分4个部分:第一部分CN计算节点,主要提供分布式SQL引擎,解决分布式事务协调、优化器、执行器等;第二部分DN存储节点,主要提供数据库存储引擎,解决数据库一致性和持久化问题,并提供计算下推能力;第三部分GMS,全局元数据服务,主要提供分布式下域元数据和全局授时的服务。第四部分CDC,提供全一致性的binlog,给下游更好的体验。
CN可以分为协议层、优化器和执行器一共三层,第一层协议层实现了MySQL最后协议,提供与云原生MySQL最接近的语法解析服务,负责建立连接、接收用户发送的数据包,组装成SQL和参数化传递给优化器。第二层优化器,对于SQL的处理,包括语法解析、校验,生成逻辑计划,并通过优化产生物理执行计划传输给执行器,优化器使用了Apache的RB和CB融合框架,可以实现自适应的TP和AP区分执行,并且可以提供执行计划管理的功能。最后一层执行器,PolarDB-X的执行器接收到物理执行计划后,会根据计划类型确定执行模式。
透明分布式是PolarDB-X核心能力之一,它能让应用在使用PolarDB-X的过程中,给予用户犹如使用单机数据库一样的体验。与传统中间件的类型的分布式数据库相比,具有透明分布式能力的PolarDB-X不需要应用考虑分区件的概念,应用可以完全将单机上的SQL复用到分布式数据库上来。同时,PolarDB-X的透明分布式能力,能极大减少从单机数据库到分布式数据库的迁移成本。
四、OceanBase一站式企业级原生分布式数据库管理解决方案
OceanBase产品部总经理王南带来了《一站式企业级原生分布式数据库管理解决方案》主题演讲。王南将OceanBase的发展之路总结为三大阶段,第一个阶段为从无到有的构建,第二个阶段是产品走向通用行业与场景的阶段,而第三个阶段OceanBase将在一体化架构以及混合负载和多云多模这两个方向上发展。
在思考如何解决海量数据给数据库带来的扩展问题过程中,OceanBase通过两种视角,不同思路解决这一问题。王南表示:第一个视角就是对于开源和商业的生态的双生态的支持,也就是Oracle生态及MySQL生态,OceanBase通过双引擎能够更好地来同时兼容这两个生态。另一个视角则是OceanBase想在数据库层来去解决集中式向分布式演变过程中遇到各种各样的问题,除了会在语法层面上来去做兼容之外,OceanBase也会在语义以及分布式的内核的层面来去做兼容。
王南介绍了今年OceanBase3.X版本对于开发工具家族的全面升级,在开发者的OTC工具,运维的OCP工具,以及数据迁移的OMS工具基础之外新增了一个OMA工具。OMA工具帮助客户从集中式到分布式的迁移过程中快速评估以及完成应用。在开发工具方面,OceanBase进行了两大方向的核心能力提升:在整个开发工具层面构建安全管控能力与在应用性上进行了深度优化。同时王南在演讲的最后还介绍了OceanBase全新的图数据库成员图Graph,这个图库可以提供OceanBase在多模和大规模实时分析计算上很强大的能力支撑。
五、湖仓一体释放全量数据价值
巨杉数据库联合创始人许建辉为线上开发者分享了主题为《湖仓一体Data Lakehouse释放全量数据价值》的演讲。在湖仓一体化的大趋势下,产生了诸如数据在存储中相对孤立,产生冗余的问题。同时在海量数据趋势下,也对实时查询、实物保障、灵活分析等能力提出更高的要求。
巨杉数据库通过多模的存储引擎,能够同时支持结构化、半结构化和非结构化的数据的统一存储,并能够实现统一的事务和一致性能力。经过多模的计算引擎,能够实现高并发的连接操作、实时计算和海量数据分析的能力,同时能够支持横向和纵向的海量数据的扩容,实现数据的存储和处理。
巨杉数据库是一个全量的数据平台,通过多模存储引擎等类型产品的数据能够进行天然的存储。通过高并发的SQL引擎,分区计算能力,只查询并发计算,算子下推精准过滤和高性能的事务,能够实现海量数据的并发查询和实时分析。通过流式风险引擎、行列混合存储、存算分离、高性能的缓存和弹性计算能力,能够实现灵活的海量数据分析。通过统一的元数据管理和权限等,能够实现在多引擎的一致性。
在数据容灾方面,许建辉介绍到:基于巨杉引擎级的一个副本容灾,可以实现RTO为零,还可以实现分区组级别的局部容灾机制,尽最大可能保证系统的可能性。面对在整个系统中是部分机器故障,我们可以采用部分机器的容灾切换,从而能够最大幅度地利用了系统的可行性,而不用产生整个集群的灾备切换。
六、StarRocks2.0的介绍与前瞻
StarRocks产品负责人赵恒带来了《StarRocks2.0的特性介绍&版本前瞻》主题演讲。StarRocks是一款主打急速统一的MPPE数据库,在数据分析场景上会有非常广泛的应用。全新的StarRocks2.0致力于将OLAP多维分析、实时分析、高并发查询和Adhoc能够在一个统一的引擎中进行实现。
赵恒表示:多表分析场景下,我们使用了一个TPCH的测试集,在这个测试集下,我们对比了StarRocks新版本和旧版本有3倍到5倍的性能提升。同时我们在计算层在RuntimeFilter上也做了一些优化。
在实时更新的场景下,StarRocks2.0实现了一个Primary key的模型,通过delete and insert的方式,去实现消除了merge on Reed。在简单查询上根据导入版本数量的不同可以有3至10余倍的性能提升。
在2.0的版本中,StarRocks重新构建了内存的管理框架,hook了所有的内存分配函数,然后并且基于线程,进行内存的统计。在生态对接方面,StarRocks2.0通过在最近的版本也在过Flick connector上进行了很多的优化,可以实现数据的精确一次或者至少一次的导入。在读取方面,新版本实现了直联BE的方式,来满足大批量读取数据的一个分析需求。在实施同步方向,通过Flick CDC和迁移工具,实现了从TP数据库的秒级同步。
七、新一代云原生数仓OushuDB的架构哲学
欧数科技数据库首席架构师陶征霖分享了《新一代云原生数仓OushuDB的架构哲学》的主题演讲。OushuDB是一款基于云原生的数据仓库,其计算和存储是完全分离的,有着多虚拟计算集群的特性。其次OushuDB通过SIMD的指令级实现了一个向量化的加速,并能够完全SQL兼容,支持混合型的负载。
OushuDB从上往下的体系架构有四层,分别为元数据集群、主节点集群、计算集群以及共享的数据层。在OushuDB中,不同的计算集群可以共享同一份的存储以及同一份的元数据,同时在计算机接电测实现了数据的缓存。在这样架构下OushuDB可以提供一种更高的并发度,以及集群间更好的一个资源的隔离。
在云原生的架构下,OushuDB有一个弹性的执行引擎,用户可以根据查询数据量的大小,以及根据当前集群资源的使用情况,动态地决定调度多少计算资源参与计算。同时OushuDB还有另一大特性是可插拔存储,不同的存储可支持不同的负载。
八、具有数据一致性保证的DaaS平台
MongoDB中文社区主席 Tapdata Founder&CEO唐建法带来了主题为《“DeltaLake”on MongoDB:具有数据一致性保证的DaaS平台》。
现在的企业往往是有几十套甚至上百套的业务系统,这些业务系统是互不相连的,当你需要用数据的时候,需要各种API或者是用ETL去抽数等等,这也就是数据孤岛的由来。数据孤岛目前有着非常多的解决方案,例如传统的ETL、代码抽数,消息中间件或者是中央化的数据平台。
但现有的方案都存在着局限性,即都是面向AP系统而打造,对于数据的分析存在滞后性。而Delta Lake有一套全新的设计,即在处理过程中,保持着每一小批的数据的增量,把这个增量记录下来,然后可以在这个基础之上回滚,即可实现一个相对实时的数据平台。
而在DeltaLake的启发下,唐建法及其研究团队提供了一个全新的increment data service数据平台。唐建法表示:我们为TP型用户提供一个数据平台,不是基于批量的,而是基于实时的一个模式。它与目前绝大多数数据平台常用的Hadoop最大的差别,就是我们能够提供毫秒级、高于Hadoop百倍的查阅性能,然后写入能够支持这种及时更新、原地更新。目前我们的数据平台在零售业、制造业都有很好的落地。

分布式数据库开源生态与应用分论坛
在开源的大趋势下,分布式数据库与开源的结合如同水到渠成一般呈现在开发者眼前。在接下来的分布式数据库开源生态与应用分论坛上,来自InfoQ、OceanBase、SphereEx、Apache Doris PPMC、CSDN、红象云腾、Flink CDC Maintainer & Apache Flink Committer、Seata的媒体,企业与开源社区负责人围绕开源议题开展了多维度分享。
一、开源分布式数据库及行业趋势解析
infoQ主编王一鹏分享了《开源分布式数据库及行业趋势解析》的主题演讲。 2021年1月,开源许可证流行度首次超过了商业许可证的流行度,分布式数据库的价值以及它的架构上的优势越来越被大家所认可。在演讲中王一鹏使用 Star、Fork和Commit数量来对比国内外分布式数据库的典型产品。他发现在国内可能一般情况是Star数量高于Commit数量,而在国外一般是Commit数量高于Star数量。
王一鹏总结了四点关于国内开源分布式数据库的观察:
  • 关于开源生态,最重要的是让社区大于代码,相比之下国外更加注重开源生态;
  • 数据库研发门槛非常高;
  • 起步晚是国内数据库的天然客观劣势;
  • 做开源分布式数据库,要做好打持久战的准备。
对于开源分布式数据库的未来,王一鹏表示:分布式数据库是业内共识的主要技术潮流之一,PGXC和NewSQL两种风格都有成功的产品。分布式数据库在快速进入金融业,革新各大银行的底层基础设施。开源以高效的研发组织形式,动摇了传统商业数据库的根本,同时在人才梯队层面开源已经形成了技术创新的闭环。
二、OceanBase社区版核心能力解析
OceanBase研发总监&开源负责人封仲淹带来了题为《OceanBase社区版核心能力解析》的演讲。OceanBase历经11年的发展,从最早的一个简单的存储系统不断创新,自研成为今天的分布式系统。在演讲中封仲淹表示:开源是一种很好的联结上下游开发商、用户和开发者不断打磨产品的有效方式。
在社区发展上,OceanBase的社区用户已经超过23000名,外部超过100名开发者,与超过100名的企业用户进行了深度的探索,进行了POC。在社区建设上,OceanBase的GitHub点赞数已经超过4000次,Fork超过860多个,Commit数超过640次。在最为关键的社区活跃度上,OceanBase社区每日和用户的沟通次数超过了300次,并且社区问答数迄今为止已经超过4600次,在技术上与超过3500名开发者进行了深度的交流。
同时在演讲中,封仲淹分享了OceanBase在支付宝、中汽知投、TPCC测试、短视频厂商以及银行的“两地三中心”中的实际案例,通过六大应用场景详尽地体现了OceanBase的高可用、低成本、高扩展以及HTAP混合负载能力。
封仲淹介绍了OceanBase社区版3.1.2版本中最新推出的社区版工具体系中的五大特性:
OMS社区版:OMS是OceanBase提供的一站式数据库传输产品,支持多种关系数据库以及消息队列等数据终端与OceanBase之间的数据复制。
OCP社区版:OCP是OceanBase的管控平台,可以大幅降低DBA和运维的压力。
ODC支持社区版:ODC是客户端开发套件,能够使用户更加方便地管理和使用OceanBase,管理表、视图、库等存储对象,进行SQL的操作,以及导入导出等高级功能。
秒杀热点行优化:秒杀热点行优化核心是进行提前解行锁,将过去事务中的占时最大的日志刷盘和同步进行解行锁。在性能测试中,优化后性能提升了超过4倍。
开放Table API和HBase的API:简化了运维流程的同时,可以保障开发人员不用担心GC和抖动问题。同时提供了更快的性能,如scan性能提升2.42倍,insert性能提升1.7倍。
三、分布式数据库下的Proxy与Proxyless架构
SphereEx创始人张亮发表了《分布式数据库下的Proxy与Proxyless》的主题演讲。分布式数据库的现状主要是从单一化向多样化去发展,随着应用场景越来越多,数据量越来越大,并发越来越高,吞吐量的要求越来越高,用一款数据库去适用所有场景是不可能的。现有的异构数据库存在着数据库访问协议、SQL方言、存储接口和结构均不同、以及数据库间无协作能力的痛点。同时异构数据服务也存在着单一数据库周边服务无法复制、难于处理多源数据库的共性需求痛点。
ApacheShardingSphere提出了一个叫做Database Plus的概念,这个概念的目标就是希望构建数据库上层生态和标准。开发者可以使用标准的SQL和原生的数据库协议,通过ShardingSphere去访问异构的多元化数据库。同时在可插拔架构之上ShardingSphere提供了增量的能力,可以让用户、开发者通过ShardingSphere提供的顶级接口进行能力的开发。
张亮介绍了ShardingSphereProxy、JDBC、Proxyless三大架构模式。其中Proxy有着跨语言、零侵入、隔离业务和数据计算资源的优势,但性能较低。而JDBC机构有着性能高、零侵入的优势,但其缺点也较为明显,仅支持Java且占用业务资源。而在演讲中张亮也提出了ShardingSphere Mesh架构设想,这一架构能够提供配置治理、流量治理以及部署治理的能力。
四、Apache Doris——极速易用的OLAP数据库
ApacheDoris PMC&百度资深研发工程师杨政国分享了《Apache Doris——极速易用的OLAP数据库》的主题演讲。
Doris是由百度自主研发并贡献给Apache社区的一个MPP架构分析型数据库产品,目前是国内唯一的分析型数据库孵化项目。Doris全面兼容MySQL的网络协议,简单易用,不依赖任何外部组件。Doris通过精心设计的MPP框架、向量化执行引擎、智能物化视图等多种技术,能够实现对于海量数据的毫秒/秒级响应,适用于高并发、高吞吐、低延时等等多场景的需求。
Doris基于高效的列存和现代化的MPP框架能够实现非常极致的查询性能。由于其完全兼容MySQL的网络协议以及标准的SQL,开发者可以非常方便地将Doris与现有的系统进行融合。同时Doris能够支持离在线一体,通过灵活的资源配置策略,能够支持离线的大吞吐和高并发,适应非常丰富的场景。
杨政国在演讲中表示:我们实现了三种非常精巧的数据模型。第一种是聚合模型,会根据相同的key对Value进行预先的聚合,通过提前聚合提升查询的性能。另外我们也实现了Unique Key主键唯一模型,key相同的时候会对Value进行去重,从而我们也实现了精确去重和行级更新。另外我们也实现了明细模型,我们不需要提前聚合数据,实现快速排序,能够存储更多的明晰数据。
五、从CSDN社区来看开源数据库的发展趋势
CSDN开源平台负责人谢志锋带来了《从CSDN社区看开源数据库的发展趋势》的主题演讲。他谈到,数据库本身的演进历史是一个从技术驱动到需求驱动、从单一到多样的过程,其中也诞生了诸如CAP理论、事务ACID原则、BASE原理(NoSql、分布式)、一致性算法等重要理论原则。在数据库全新的技术时代下,一定会有大量的新型数据库出现,同时开源一定在其中占据很大的比重。
从CSDN网站中能够看出数据库这个话题在开发者当中非常重要,排名前20的数据库在CSDN上都有超过20万的资源、搜索量和下载量。目前CSDN已经做了一个开源的托管平台GitCode,国内主流的传统、新兴数据库厂商大部分都已经入驻。
从CSDN的BI大数据查询诉求出发,CSDN的BI数据目前已经超过了70T,支持公司内部的业务分析以及CSDN用户的智能推荐功能。谢志锋表示:为了优化查询,我们从租户使用,数据表管理,数据输出三个方面做了优化。在实践过程中我们发现OceanBase能够兼容MySQL所有的功能,迁移的门槛也很低,尤其是它的连接数很大,要求的数据量又很多。在需要分库分表且NoSql查询无法满足的情况下,OceanBase就非常适用。
六、OceanBase及Hadoop在PB级大数据场景下的应用探索
红象云端创始人&Hadoop技术讲师童小军分享了题为《OceanBase及Hadoop在PB级大数据场景下的应用探索》的演讲。红象云端旗下的Redoop Enterprise产品基于大数据场景需求的多样性打造,整个Hadoop架构包含了几十个不同的开发软件,通过组合的方式完成各种各样的需求,包含批处理需求、实时需求,云计算需求,以此服务整个企业。
童小军表示:在选择分布式数据库时,我们列了一些必要的标准。首先是开源开放,同时分布式数据库需要具备高可用与线性扩展能力,与Hadoop比较接近。第三要求这款产品具有强大而事务处理能力以弥补Hadoop在事务处理能力的不足,最后需要与MySQL、Oracle有很好的兼容性,最终我们选择了OceanBase。
在演讲中童小军介绍了Hadoop与OceanBase组合服务的客户案例。在新能源光伏电力大数据上线的案例中,OceanBase+Redoop Enterprise的平台服务于数据接口、系统应用、报表展现、可视化等一系列功能,形成了一个敏捷的,统一的电力行业大数据平台。在通信领域的大数据案例中,通过Redoop Enterprise平台部署了一系列安装、监控、运维等各种组件,OceanBase在中间承担了关键的替换MySQL的任务。
七、基于 Flink CDC的全增量一体化数据集成方案
FlinkCDC Maintainer & Apache Flink Committer徐榜江发表了《基于Flink CDC的全增量一体化数据集成方案》的主题演讲。通常来讲CDC技术主要是面向数据库的变更,用于捕获数据库中数据变更的技术。而Flink CDC将传统的数据库CDC技术跟Flink 底层的log机制进行深度结合,再利用Flink 优秀的管道能力和丰富的上下游生态,将CDC数据通过加工后同步到下游。
在入湖架构中,FlinkCDC提供了全增量实时同步能力,能够做到不影响业务的稳定性,将数据的产出提高到分钟级别。同时,FlinkCDC能够做到全量和增量的一体化同步,一个组件、一条链路就解决需求,其链路更短,组件更少。
在演讲中徐榜江介绍了基于Flink CDC做全增量一体化数据集成有四个核心特性,分别是增量快照读取、存储写入友好、支持异构数据融合、支持分库分表合并。在最后徐榜江分享了Flink CDC开源社区最新的动态,除了版本高速更新外,在GitHub的十大年度增长中,Flink CDC的增长超过330%,目前已经到了1500左右。
八、基于 Seata &OceanBase 在微服务架构下的数据一致性解决方案
Seata开源社区负责人季敏带来了主题为《基于 Seata &OceanBase 在微服务架构下的数据一致性解决方案》的演讲。根据Seata在2019年在微服务市场中做的调差显示,分布式服务是微服务中最大的痛点。分布式事务的主要业务场景可以归为三类,一种是跨库,例如Oracle到MySQL的迁移,另一种是跨服务,最后一种是资源多样性。
关于Seata社区的演进,Saeta最初的定位是开源的分布式事务解决方案。对市面上主流的数据库,Seata都进行了广泛地支持。Seata从概念上定义了分布式事务的角色,在原生的Oracle XA角色,又扩展了TCC角色扮演独立的协调性,增强了事务边界的可扩展性。同时Seata通过抽象出实物模型框架Framework,并将AT、TCC、Saga、XA模式融入其中进行了重塑。
季敏表示:Seata未来长期的发展路径就是支持更多数据库生态,这样的话就可以做到我们在业务的应用中可以无缝地使用各种数据库。当我们做到这一点,Seata跟数据库生态的集成就是一个完全透明、非常紧密的结合,我们也期待着未来Seata能支持数据库生态中有更好的应用架构。