首页 > 数据库 >华为云GaussDB NoSQL云原生多模数据库的超融合实践

华为云GaussDB NoSQL云原生多模数据库的超融合实践

时间:2024-05-30 15:23:53浏览次数:21  
标签:原生 NoSQL GaussDB Redis 多模 数据库

华为云GaussDB NoSQL云原生多模数据库的超融合实践

举报  GeminiDB-Redis博客 发表于 2021/11/16 13:37:30    2w+  0  0   【摘要】 中国数据库大会分享,主题为GaussDB NoSQL架构设计。

引言

本届中国数据库技术大会(DTCC),不管是公有云数据库厂商,还是传统数据库厂商,都在关注云原生的技术实践,分享了很多存算分离、DBaaS、Kubernetes等与数据库深度结合的案例。

在NoSQL专题会场,热度最高的一场演讲来自华为云数据库团队,由广入深,干货满满。

本文整理自华为云数据库NoSQL架构师余汶龙的专题分享——云原生多模数据库GaussDB NoSQL架构设计,总结了当前数据库的发展趋势、GaussDB NoSQL关键技术解密以及核心竞争力。

数据库发展趋势

1. 行业市场

中国信通院最新研究透露出两个重要信息:

  • 未来几年,中国数据库市场将保持23.4%的年复合增长率,中国数据库市场在全球的份额,将从2020年的5.2%提升到12.3%
  • 中国的国产数据库产品虽然以关系型为主,非关系型为辅,但从2000年以后,以图、时序等为代表的非关系型产品发展势头越来越好,截止2020年底,国产NoSQL数据库厂商已经占到了40%

1.png

2. 行业趋势

受大环境的影响,国内金融、电信、政企等行业为防止潜在的供应链风险,技术层面存在自研需求,这使得我们的国产数据库产业进入蓬勃发展的初期。

但我国数据库行业发展还面临2个核心问题:

  • 如何缩小“高要求的存量数据应用”与“仍处于发展初期阶段的供给能力”之间的差距;
  • 如何匹配“创新型数据应用”与“数据库技术演进”的合理映射关系。

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

因此,为了更好的兼容历史数据应用(比如原先用Redis),并支持好未来的创新应用(新增Influx),可以在多模与云原生领域提前做好相关布局。

2.png

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

数据库的发展,按传统物理机部署到云化,大概经历了三代。

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

3.png

4. 存算分离,分而治之

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

存算分离是一种分层的设计思想:

  • 从逻辑到功能进行明确的划分,让计算层更聚焦服务、产品、协议处理等事件;
  • 存储层更聚焦数据本身的复制、安全、扩缩容等等。

4.png

5. 多模归一,一生万物

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

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

其实,完全可以把这些功能抽象成统一的架构,即“多模归一”。在这套统一架构之上,我们再新增别的引擎就很容易了。可以快速复用当前的成熟架构,提供不同的协议接口即可,即“一生万物”。

5.png

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分离,解决了时延抖动问题。

a.png

2. Flush卸载

根据LSM引擎的写入流程,可以知道,一个数据要写入DB中,需要经历两次IO:

  • 写WAL
  • flush memtable

而这两次IO写的其实是相同数据,完全可以省掉一次。因此,我们借助共享存储的能力,独立出一个后台任务节点。当用户前台节点需要flush memtable的时候,由后台任务节点读取WAL,并转化成L0层的SST,再应用版本,并通知前台删除memtable。这样就极大节省了用户前台的IO开销。

b.png

3. 分裂

GaussDB NoSQL在分片策略上,采取的是Hash + Range的结合方式,因此扩容或处理热点的时候会很灵活。

比如,当chunk数量足够多时,只需要移动chunk就可以扩容;而当某个chunk成为访问热点时,对它做分裂就可以解决局部热点问题。

c.png

4. 3AZ容灾

作为数据库产品,容灾特性是很重要的,它可以避免极端情况给用户业务带来的灾难性损失。

GaussDB NoSQL有统一的容灾设计,即存储和计算可以实现3AZ部署,同时存储层数据实现3副本强一致复制。因此在任意时间,挂掉了任意机房的存储,都不会丢数据;而挂掉计算,也会被其他AZ的计算节点接管元数据,不会让访问完全中断。

d.png

以Redis为例看GaussDB竞争力

接下来,以使用最广泛的NoSQL引擎Redis为例,具体介绍GaussDB NoSQL的优势。

1. 强一致

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

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

x.png

2. 高可用

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

y.png

3. 弹性伸缩

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

  • 当用户的计算不足时,只需要扩展计算节点;
  • 当存储空间不够时,只需要扩展存储空间即可。

同时,扩容过程也足够流畅:

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

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

z.png

4. 全负荷分担

存算分离的设计,让我们把数据复制交给了存储,计算层则完全解放。

每个节点都可以承担用户的读写请求,这跟开源Redis的主上读写来比较,实现了2倍扩展。

zz.png

总结

  • 云原生是技术趋势

云原生是大势所趋,越来越多厂商和从业者都在提倡云原生,而华为云GaussDB NoSQL不仅仅基于云原生,还实现了多模架构,实现了多副本强一致、高可用、弹性伸缩、高性能等能力,以及具备资源复用、开发运维统一等好处。

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

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

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

tail.png

附录

本文作者:华为云数据库GaussDB(for Redis)团队

杭州/西安/深圳简历投递:[email protected]

更多产品信息&优惠活动:GaussDB(for Redis)官网

更多技术文章请关注:GaussDB(for Redis)官方博客

标签:原生,NoSQL,GaussDB,Redis,多模,数据库
From: https://www.cnblogs.com/yaoyangding/p/18222435

相关文章

  • 多模态模型的演进和四种主流架构类型
    机器学习中的多模态领域近年来取得了显著进展。能够处理图像、音频或视频以及文本(语言)的模型显著增多,特别是在Transformer模型的帮助下。我们对现在的多模态按照架构模式分为四类:A、B、C、D。A和B类型在模型内部层中深度融合多模态输入,可以实现细粒度控制模态信息流动,但需要大......
  • 【机器学习】Chameleon多模态模型探究
    Chameleon:引领多模态模型的新时代一、多模态模型的时代背景二、Chameleon模型的介绍三、Chameleon模型的技术特点四、Chameleon模型的性能评估五、Chameleon模型的代码实例随着人工智能技术的深入发展,我们逐渐认识到单一模态的模型在处理复杂问题时存在一定的局限......
  • IdentiFace——多模态人脸识别系统,可捕捉从情绪到性别的所有信息及其潜力
    1.概述面部识别系统的开发极大地推动了计算机视觉领域的发展。如今,人们正在积极开发多模态系统,将多种生物识别特征高效、有效地结合起来。本文介绍了一种名为IdentiFace的多模态人脸识别系统。该系统利用基于VGG-16架构的模型,将人脸识别与性别、脸型和情绪等重要生物......
  • Fine-tuning in LLaVA:多模态的指令调优
    1Prerequisites1.1TrainingMethods训练方法通常分为三种:提示工程、微调和预训练。1.1.1PromptEngineering不需要重新训练模型,节省成本。1.1.2Fine-tuning微调和预训练的代码基本相同,但是计算量相对小很多。1.1.3Pre-training大规模数据集上训练,得到的是一个未加调......
  • 在 GPT-4o 释放完整能力前,听听实时多模态 AI 创业者的一手经验 | 编码人声
      「编码人声」是由「RTE开发者社区」策划的一档播客节目,关注行业发展变革、开发者职涯发展、技术突破以及创业创新,由开发者来分享开发者眼中的工作与生活。 5月中旬GPT-4o的发布,让人与AI的交互,从对话框的文本交流加速推进到了音视频多模态的实时互动。 本期节目,......
  • LLM 大模型学习必知必会系列(三):LLM和多模态模型高效推理实践
    LLM大模型学习必知必会系列(三):LLM和多模态模型高效推理实践1.多模态大模型推理LLM的推理流程:多模态的LLM的原理:代码演示:使用ModelScopeNoteBook完成语言大模型,视觉大模型,音频大模型的推理环境配置与安装以下主要演示的模型推理代码可在魔搭社区免费实例PAI-DSW......
  • 5.14.6 TransMed:Transformer推进多模态医学图像分类
    卷积神经网络(CNN)在医学图像分析任务中表现出了非常有竞争力的性能,例如疾病分类、肿瘤分割和病灶检测。CNN在提取图像局部特征方面具有很大的优势。然而,由于卷积运算的局部性,它不能很好地处理长程关系。多模态医学图像具有明确且重要的长程依赖性,有效的多模态融合策略可以极大......
  • NoSQL入门
    NoSQL入门NoSQL概述如今,大多数的计算机系统(包括服务器、PC、移动设备等)都会产生庞大的数据量。其实,早在2012年的时候,全世界每天产生的数据量就达到了2.5EB(艾字节,$$1EB\approx10^{18}B$$)。这些数据有很大一部分是由关系型数据库来存储和管理的。早在1970年,E.F.Codd发表了论述关......
  • NoSQL
    在互联网快速发展的今天,数据种类和格式越来越多样化,传统的关系型数据库已经难以适应,在此种情况下NoSQL应运而生,本文主要讲解NoSQL的基础知识,及MongoDB的入门安装,仅供学习分享使用,如有不足之处,还请指正。什么是NoSQL?NoSQL,指的是非关系型的数据库。NoSQL有时也称作NotOnlySQL......
  • 在Docker中安装GaussDB的ODBC驱动并添加Python测试代码
    #使用官方的Ubuntu20.04镜像作为基础镜像FROMubuntu:20.04#设置环境变量以避免交互式安装提示ENVDEBIAN_FRONTEND=noninteractive#更新包列表并安装必要的软件包RUNapt-getupdate&&\apt-getinstall-y\wget\curl\gnupg2\apt-transport-https......