分布式数据库架构路线大揭秘
摘要:这些年大家都在谈分布式数据库,各大企业也纷纷开始做数据库的分布式改造。那么所谓的分布式数据库是什么?采用什么架构,优势在哪?为什么越来越多企业选择它?我们不妨一起来深入了解下。
本文分享自华为云社区《GaussDB分布式架构大揭秘》,作者:华为云数据库首席架构师 冯柯。
这些年大家都在谈分布式数据库,各大企业也纷纷开始做数据库的分布式改造。那么所谓的分布式数据库是什么?采用什么架构,优势在哪?为什么越来越多企业选择它?我们不妨一起来深入了解下。
分布式数据库是如何演进的?
回顾分布式数据库的演进历程,我们可以大致概括为三个发展阶段:应用分库分表做垂直拆分、分布式中间件、分布式数据库。每个阶段都呈现出了不同的特点:
应用分库分表做垂直拆分本质上是应用侧的改造,和数据库本身没有太大关系。
在分布式中间件阶段,分布式数据库本质上是由两部分组成的,上层是分布式中间件,底层再搭载开源MySQL或PG单机内核。这种方式因为使用了比较成熟的内核,所以生态友好、成本较低,比较容易实现,不过缺点也显而易见,比如功能降级、分布式事务处理能力较差,最重要的是,因为使用的是开源产品的内核,数据库会始终受制于开源代码修改、专利、发行方式等很多方面的风险,这种形式显然已经无法满足当前国内金融、政企客户的需求。
到了分布式数据库阶段,主要呈现出两种形态。一种是基于分布式存储实现的分布式数据库,这种形态先有分布式存储,再叠加数据库能力,我们习惯把它称为“分布式+”。
这种架构在分布式比较擅长的领域,更容易形成它的技术竞争力。什么是分布式擅长的领域呢?比如说像扩展性、及时的扩展性,大规模运维的灵活性,比如扩缩容。在这方面,分布式+的天花板会更少,因为它一开始就是按照分布式存储来设计的。这里面有意思的一点是,这跟架构本身没有太大关系,我们看到,今年所有的在国内的分布式+的厂商都有一个共同特点,就是在整个存储引擎的设计上跟今天我们认知的,不管是MySQL还是PG,都不一样。它不是一个类似于B-TREE的这样一种结构,而通常是基于LSM-Tree存储引擎,数据写内存,然后批量写持久化的这样一种方式。这是因为这些分布式+的厂商,他们的所有技术体系都来源于Google,而Google最早做的第一款产品就是分布式存储,叫Big Table,Big Table本身就是基于LSM-Tree的,这是一个历史传统。这就是为什么LSM-Tree跟分布式+本身没有必然关系,但是今天我们看到国内所有走分布式+路线的厂商,都使用的是LSM-Tree。
LSM-Tree有它的优点,比如主备之间的异构性有天生的优势,但也有一个非常大的缺点,就是对于场景的普遍适用性。它比较适合于写密集的场景,有大量写入插入,比如我的订单、流水化的订单,但不太适合状态类的业务,有大量的读和写,要去更新状态。而且它把随机写转为顺序写,在做compaction也就是内存和持久化存储数据合并时也会有空间放大和性能抖动问题,所以它整个场景的适用性比B-Tree要低。
这个阶段的另外一种形态,就是基于分布式数据库理论实现的原生分布式数据库,与“分布式+”正好相反,它是先有TP单机数据库引擎,再叠加分布式能力,我们一般称之为“数据库+”,华为云GaussDB分布式数据库就是这种形态的典型代表。
这种形态不存在空间放大和性能抖动的问题,而且更容易在数据库本身所擅长的领域发挥优势,比如说性能、复杂SQL处理能力、企业级能力。同时,因为金融政企客户在使用分布式技术之前,往往已经有分库分表、使用分布式中间件产品的经验,所以对这种架构的认可度更高,学习成本也相对较低,因此这种形态也是国内当前被采用较多的一种。
数据库+与分布式中间件有什么区别?
数据库+和分布式中间件,这两种形式从架构上来看是非常相似的,分布式中间件上面是一个代理层,下面有很多单机数据库。我们可以这么来看,就像是天平的两端,一端在0,一端在1,里面有三个非常大的差别。
如何处理分布式事务,提供外部一致性?
分布式中间件通常是基于XA来实现数据一致性,但XA本身是不能实现外部一致性的,一般只支持最终一致性,而数据库+的分布式数据库可以基于内置全局授时来实现全局一致性读,从而支持外部一致性。
如何处理分布式SQL?
分布式中间件是把数据库作为黑盒,数据节点之间只能通过SQL的形式传递,是标准的SQL。
分布式中间件处理分布式SQL
而数据库+的代理层和数据节点是一个数据库的不同部分,互相之间可以传递更加内部的东西,比如计划树,不同的数据节点之间也不需要代理节点,可以直接传递。
数据库+处理分布式SQL
如何实现分布式一致性?
分布式中间件通常是基于传统主备架构,使用半同步、最大保护等模型来实现分布式一致性,不过这种形式下一致性和高可用是没有办法同时兼顾到的,而数据库+是基于原生分布式共识而打造,比如Quorum、Paxos,Raft,可以实现底层无损容灾,同时满足一致性和高可用性。
对于数据库厂商而言,如果以上三个问题全都做到了,那我们可以说它是分布式数据库,如果三者都无法做到,我们一般说它是分布式中间件,如果说只做到了其中的一部分,那就很难下定义究竟是分布式中间件还是分布式数据库,但可以从这三方面去衡量它的天平更倾向哪一边。
数据库+更适合金融政企的未来
出现三种不同的技术路线,本质上是团队的人员能力模型、特质和最初要解决的问题决定了最终走向哪条路线。技术没有绝对的好与坏,只有是不是合适。今天我们看到很多金融政企客户都在提分布式数据库,从0到1的突破可能是由于政策性的突破,因为国产化,但从1到N的突破,是需要产品本身竞争力的突破。我们发现,在这个阶段,客户不再关心分布式,客户关心什么?关心的是数据库本身。不管叫什么技术,能不能满足需求,能不能提供足够的性能、足够的扩展性、足够的高可用,能不能支撑复杂的业务场景,我们的观点是,最终这个行业会回归到他的本源,分布式数据库的本源是数据库,不管叫分布式+还是数据库+,最终给客户的核心价值仍然是数据库。因此,数据库+更能匹配金融政企未来长期的发展。
GaussDB融合了华为在数据库领域15年多的战略投入,是基于分布式理论打造的行业领先的国产原生分布式关系型数据库,采用行业先进的全并行分布式架构,有应对海量并发事务处理与复杂查询混合负载的能力;还有同城跨AZ、两地三中心、数据0丢失等多种高可用方案,出色的金融级高可用商用能力全方面满足金融级监管要求。
现在,GaussDB已经在金融行业积累了非常丰富的实践经验,历经华为终端云、华为流程IT、全球TOP银行、运营商等各种严苛场景的考验,不仅成功助力邮储银行新一代个人业务分布式核心系统全面投产上线,为全行6.5亿个人客户、4万多个网点提供日均20亿笔、峰值6.7万笔/秒的交易处理能力,还通过一系列技术创新,轻松支撑华为流程IT ERP系统5倍业务压力下性能保持线性,实现业务效率的10倍提升,是企业数字化转型、核心数据上云、分布式改造的信赖之选。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
如何快速搭建openGemini运行状态的实时监控系统?
监控系统是运维工作中不可或缺的一项技术,一个好的监控系统能够对设备和系统的关键指标实时采集、存储、分析、告警,真正做到“事前预警,事后追踪”,从而大大降低运维成本,提高运维效率。 openGemini提供了260+项丰富的内核运行状态和设备运行监控指标,来满足我们日常的监控告警需求和帮助问题定位,本文将着重介绍如何搭建openGemini的内核运行实时监控系统。 整体部署 监控系统的整体部署方案如下图所示: 该方案包含监控数据生产、采集、存储、分析告警和展示等所有功能,主要由四部分组成: openGemini集群: 随着业务运行,openGemini持续输出内核运行状态的各项指标数据。openGemini同时支持两种方式输出指标数据,第一种将指标数据输出到日志中;第二种则为HTTP方式,采用openGemini的数据格式,接收端需使用InfluxDB或openGemini这两种数据库均可。 指标采集:如上所述,采用HTTP方式输出指标数据,则无需额外的数据采集工具,但会缺乏一些监控指标,如磁盘利用率、创建的表总数、时间线数量、创建的数据库总数等。 如果将数据输出到日志中时,则需要使用t...
- 下一篇
协同存储,为边缘计算创造更大价值
01 数据的爆发为存储带来持续挑战 在5G时代下,视频和图片因其强大的信息承载力,已经成为数据内容的主要载体和信息传播的主要方式。而5G的大带宽、低时延、广连接的特性激活了云游戏、物联网、视频监控等场景应用,从消费互联网到产业互联网的延伸,更加促进了终端应用和数据的爆发。 这些终端和数据具有位置分散、规模大、以及价值密度相对较低等特点,典型的如:视频监控录像/截图、云游戏录像、海量临时日志文件等。一方面,我们需要提供就近、低延迟的数据接入与存储能力,另一方面,我们需要在边缘进行数据的精细化管理,与计算相结合,分析其中的关键片段以及其结构化信息。 这样的场景和需求对计算和存储的方式带来了严峻挑战和根本性变化。 02 基于边缘云构建位置无感的协同存储服务 用户在使用对象存储时,针对海量数据,提出了大流量、就近、低延迟的要求,边缘云在这些方面具备天然优势,但边缘云的对象存储在使用方式和体验上存在明显不足。相较于传统中心云的region化使用方式,边缘云的单点规模较小,并且节点数多了几个量级。 如果每个边缘云节点独立进行对象存储服务,无异于将复杂的逻辑交给用户,用户使用时将面临节点资源管理、...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7安装Docker,走上虚拟化容器引擎之路
- Docker安装Oracle12C,快速搭建Oracle学习环境
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Hadoop3单机部署,实现最简伪集群
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2配置默认Tomcat设置,开启更多高级功能