关于程序员:华为云GaussDB-NoSQL云原生多模数据库的超融合实践

34次阅读

共计 3277 个字符,预计需要花费 9 分钟才能阅读完成。

一、引言

本届中国数据库技术大会(DTCC2021),不论是私有云数据库厂商,还是传统数据库厂商,都在关注云原生的技术实际,分享了很多存算拆散、DBaaS、Kubernetes 等与数据库深度联合的案例。在 NoSQL 专题会场,热度最高的一场演讲来自华为云数据库团队,由广入深,干货满满。本文整顿自华为云数据库 NoSQL 架构师余汶龙的专题分享——云原生多模数据库 GaussDB NoSQL 架构设计,总结了以后数据库的发展趋势、GaussDB NoSQL 关键技术解密以及外围竞争力。

二、数据库发展趋势

1. 行业市场

中国信通院最新钻研走漏出两个重要信息:

  • 将来几年,中国数据库市场将放弃 23.4% 的年复合增长率,中国数据库市场在寰球的份额,将从 2020 年的 5.2% 晋升到 12.3%;
  • 中国的国产数据库产品尽管以关系型为主,非关系型为辅,但从 2000 年当前,以图、时序等为代表的非关系型产品发展势头越来越好,截止 2020 年底,国产 NoSQL 数据库厂商曾经占到了 40%。

2. 行业趋势

受大环境的影响,国内金融、电信、政企等行业为避免潜在的供应链危险,技术层面存在国产化需要,这使得咱们的国产数据库产业进入蓬勃发展的初期。

但我国数据库行业倒退还面临 2 个外围问题:

  • 如何放大 “高要求的存量数据利用”“仍处于倒退初期阶段的供应能力”之间的差距;
  • 如何匹配 “创新型数据利用”“数据库技术演进”的正当映射关系。

如何答复上述两个问题,能够从中国信通院最新的趋势总结里找到答案:“多模实现一库多用,简化开发运维老本”、“云原生升高硬件依赖,更不便的享受新兴技术红利”。

因而,为了更好的兼容历史数据利用(比方原先用 Redis),并反对好将来的翻新利用(新增 Influx),能够在多模与云原生畛域提前做好相干布局。

3. 云原生数据库演进方向

数据库的倒退,按传统物理机部署到云化,大略经验了三代。

  • 第一代 是纯物理机、裸硬盘部署,从业人员必须关怀硬件的各种细节,包含机型、零碎、硬盘、组网等等;
  • 第二代 是云化的初级阶段,从业人员把数据库部署从物理机,迁徙到虚拟机 VM,把物理硬盘,换成了云盘 EVS。但这一代有个显著的毛病,EVS 是个 3 正本牢靠的服务,再加上数据库本身的高可用,那么存储老本就放大了 3 倍;并且备机其实是资源节约的,没有提供服务;
  • 第三代 是云化的高级阶段,这个阶段将数据库的资源,彻底分成存储和计算两层,其中计算资源部署在更轻量级的容器之上,而存储资源部署在分布式存储池之上。很显然,这是与云原生联合更彻底的形式,充沛享受了架构的弹性、便捷,而且轻松实现了多点读写的全负荷分担能力。

4. 存算拆散,分而治之

云原生数据库有两个重要的特点。首先是存算拆散。

存算拆散是一种分层的设计思维,从逻辑到性能进行明确的划分:

  • 计算层 更聚焦服务、产品、协定解决等事件;
  • 存储层 更聚焦数据自身的复制、平安、扩缩容等等。

5. 多模归一,毕生万物

云原生数据库第二个重要的特点,是多模。

多模实际上是一种“归一”,也是一种“派生”。以大家相熟的 NoSQL 为例,MongoDB 是有 Mongod/Mongos/Config 等组件,而对应的 Cassandra 其实也有 Coordinate Node/Data Node 等组件。尽管这些组件名字不同,但背地做的事件是一样的,即:集群治理、正本治理、扩缩容治理、以及管控等性能。

其实,齐全能够把这些性能形象成对立的架构,即“多模归一”。在这套对立架构之上,咱们再新增别的引擎就很容易了。能够疾速复用以后的成熟架构,提供不同的协定接口即可,即“毕生万物”

6.GaussDB NoSQL 详情

接下来介绍这次分享的配角——云原生多模数据库 GaussDB NoSQL

以后 GaussDB NoSQL 曾经反对 MongoDB、Cassandra、Redis、InfluxDB 等 4 款引擎;寰球客户 1000+,脚印遍布金融、政府、电信、互联网等行业;总数据量超过 10PB,每日新增超过 10TB。

三、GaussDB NoSQL 关键技术

1.Compaction 卸载

GaussDB NoSQL 采纳 LSM 做存储引擎,失常状况下,前台的读写会受到后盾的 Compaction 工作的影响,从而导致时延抖动。

因而,咱们设计了独自的 Compaction 工作节点,通过共享的形式,拜访用户的数据并进行 Compact,再将 Compact 的后果利用到用户的可见版本中。这样做的话,就将用户前台的 IO 和后盾 IO 拆散,解决了时延抖动问题。

2.Flush 卸载

依据 LSM 引擎的写入流程,能够晓得,一个数据要写入 DB 中,须要经验两次 IO:

  • 写 WAL
  • flush memtable

而这两次 IO 写的其实是雷同数据,齐全能够省掉一次。因而,咱们借助共享存储的能力,独立出一个后台任务节点。当用户前台节点须要 flush memtable 的时候,由后台任务节点读取 WAL,并转化成 L0 层的 SST,再利用版本,并告诉前台删除 memtable。这样就极大节俭了用户前台的 IO 开销。

3. 决裂

GaussDB NoSQL 在分片策略上,采取的是 Hash + Range 的联合形式,因而扩容或解决热点的时候会很灵便。

比方,当 chunk 数量足够多时,只须要挪动 chunk 就能够扩容;而当某个 chunk 成为拜访热点时,对它做决裂就能够解决部分热点问题。

4.3AZ 容灾

作为数据库产品,容灾个性是很重要的,它能够防止极其状况给用户业务带来的灾难性损失。

GaussDB NoSQL 有对立的容灾设计,即存储和计算能够实现 3AZ 部署,同时存储层数据实现 3 正本强统一复制。因而在任意工夫,挂掉了任意机房的存储,都不会丢数据;而挂掉计算,也会被其余 AZ 的计算节点接管元数据,不会让拜访齐全中断。

四、以 Redis 为例看 GaussDB 竞争力

接下来,以应用最宽泛的 NoSQL 引擎 Redis 为例,具体介绍 GaussDB NoSQL 的劣势。

1. 强统一

社区版 Redis,主从复制是异步的,容易造成数据沉积,也有宕机丢数据危险。

GaussDB(for Redis)(下文简称高斯 Redis)则是采纳强统一同步的,当用户的数据写入高斯 Redis 并收到返回 OK,这意味着高斯 Redis 曾经实现了强统一的复制,数据的安全性很高。当然,这里的复制过程采纳了组提交、用户态文件系统、RDMA 等技术来升高同步复制的时延。

2. 高可用

高斯 Redis 的数据存储是共享的,即 Shared Everything,因而能够容忍最多 N - 1 个节点故障,而不影响数据的拜访。

3. 弹性伸缩

高斯 Redis 实现了分层弹性,将资源精确的划分成计算资源、存储资源,真正做到了按需扩容:

  • 当用户的计算有余时,只须要扩大计算节点;
  • 当存储空间不够时,只须要扩大存储空间。

同时,扩容过程也足够晦涩:

  • 计算扩容的过程,不须要拷贝数据,只须要批改路由映射即可,对业务侧的影响很小;
  • 存储扩容更简略,只须要批改配额即可,对业务侧零影响。

所以计算、存储的扩容都足够轻量级,可极速实现且对业务烦扰极小。

4. 全负荷分担

存算拆散的设计,让咱们把数据复制交给了存储,计算层则齐全解放。

每个节点都能够承当用户的读写申请,这跟开源 Redis 的主上读写来比拟,实现了 2 倍扩大。

五、总结

  • 云原生是技术趋势

云原生是大势所趋,越来越多厂商和从业者都在提倡云原生。

华为云 GaussDB NoSQL 不仅仅基于云原生,还实现了多模架构,实现了多正本强统一、高可用、弹性伸缩、高性能等能力,以及具备资源复用、开发运维对立等益处。

  • 华为云 GaussDB NoSQL 提供超交融数字化解决方案

华为云 GaussDB NoSQL 提供了成熟的多模个性:

  • 提供高并发、低时延的 Redis,助力秒杀、举荐、热搜等场景;
  • 提供大容量、高频写的 Cassandra,助力海量存储以及检索等场景;
  • 提供非结构化、灵便扩大的 MongoDB,助力大数据分析、交易等场景;
  • 提供时序特色的 InfluxDB,助力边缘计算、工业生产、实时监控等场景。

以上场景涵盖数字工业的方方面面,提供了残缺的一体化解决方案,不便用户一站式应用。

【重磅举荐】华为云数据库特惠流动

本文由华为云公布

正文完
 0