从GaussDB(for MySQL)看全自研数据库的正确打开方式

举报
华为云社区精选 发表于 2020/10/21 18:09:06 2020/10/21
【摘要】 本篇文章将深入剖析GaussDB(for MySQL)的关键技术和核心特性

GaussDB(for MySQL)是华为自研的最新一代企业级云原生分布式数据库,采用Shared Everything和Share-Nothing相结合的架构,完全兼容 MySQL,底层支持X86和鲲鹏,在性能、可靠、易用性方面有不俗的表现,且在金融领域有很多实际的应用。

GaussDB(for MySQL)支持两种部署形态:主备和分布式。其中,主备部署最大支持1写15读,分钟级添加只读实例,支持读写分离,自动负载均衡。全分布式部署的数据按shard划分,读写负载准线性扩展,满足大规模业务量场景。

本篇文章将深入剖析GaussDB(for MySQL)的关键技术和核心特性,最后讲解GaussDB(for MySQL)在相关行业的应用案例。

目录如下:

1、GaussDB(for MySQL)主备版设计理念

2、GaussDB(for MySQL)主备版七大核心优势

3、分布式版:最高支持PB级海量存储,性能更强

4、行业案例说话,GaussDB(for MySQL)到底有多牛?

 

GaussDB(for MySQL)主备版设计理念

在讨论之前,先回顾一下传统MySQL架构存在的问题,MySQL有很多年的历史,也遗留了很多问题。比如随着5G和物联网的发展,MySQL面对高并发海量数据的场景会面临很多瓶颈,造成计算、存储、网络资源的浪费。

正因为存在这些问题,不少用户都提出了要求,华为云有没有可能带来新的数据库解决这些问题,并且兼容MySQL。

根据这些诉求,我们定下了GaussDB(for MySQL)的设计理念:

  • 计算与存储分离,主从解耦;

  • IO密集型负载下推到存储节点完成,比如redo处理,页重构;

  • 充分利用云存储的能力,存储层实现独立容错和自愈服务,共享访问(单写多读);

  • 发挥SSD的优势,避免随机写带来的写放大,减少磨损、降低时延;充分利用SSD的随机读性能;

  • 当性能瓶颈从计算存储转到网络时,采用新的网络技术和硬件,比如RDMA。

在架构方面,GaussDB(for MySQL)的优势明显,其底层使用华为自研的DFV存储,而华为存储在国内市场连续多年排名第一,存储产品经过大量企业场景的应用和实践,稳定性、可靠性在业内都是首屈一指的。

由于使用共享式分布式存储,GaussDB(for MySQL)与传统的MySQL相比,只有一份存储。 添加一个只读节点时,只需添加一个计算节点,无需再额外购买存储。如果只读节点越多,节省的存储成本更多。

其次,GaussDB(for MySQL)不再有备库的存在,所有的只读都是Active状态,并且承担读流量,使得资源利用率更高。

最后,日志即数据架构让GaussDB(for MySQL)不再需要刷page,所有的更新操作仅记录日志,不需要double write,减少了网络带宽资源的浪费。

 

GaussDB(for MySQL)七大核心优势

1、100%兼容开源MySQL生态

GaussDB(for MySQL)100%兼容MySQL8.0数据库对象和语法,全面支持PL/SQL语法,应用代码改动少,应用迁移周期短,开发人员学习成本低,降低新业务开发周期。

2、软硬垂直优化,性能达到开源数据库的7倍,最大1写15读

深度优化数据库内核,同时采用物理复制、RDMA高速网络和分布式共享存储,大幅提高性能。集群包含一个主节点和最多15个只读节点,满足高并发场景对性能的要求,尤其适用于读多写少的场景。基于共享存储的一写多读集群,数据只需要一次修改,所有节点立即生效。

3、基于华为自研DFV分布式存储,海量存储

底层存储按需付费,最大128TB,自动扩容,业务无感知。计算存储仅通过日志实现持久化,IO精简,网络开销比传统减少86%。

4、跨AZ部署高可用,数据安全可靠

GaussDB(for MySQL)这个特性在国内,以及对比友商都是领先的,它能做到跨3AZ部署,任何一个节点故障都不会对业务带来致命影响,故障切换速度做到10秒以内,做到数据零丢失。

采用白名单、VPC网络、数据多副本存储等全方位的手段,对数据库数据访问、存储、管理等各个环节提供安全保障。

5、扩展性做到只读节点的分钟级扩展

采用容器虚拟化技术和共享的分布式块存储技术,使得数据库服务器的CPU、内存能够快速扩容,配置升降级5分钟生效。

增减节点也能在5分钟生效,通过动态增减节点提升性能或节省成本。通过使用集群地址,可屏蔽底层的变化,应用对于增减节点无感知。

6、快速备份恢复

采用快照的方式,相比传统MySQL物理备份,整个恢复时间提高了数倍。

基于底层存储系统的多时间点特性,不需增量日志回放,可直接实现按时间点回滚。

备份及恢复逻辑下沉到各存储节点,本地访问数据并直接与第三方存储系统交互,高并发高性能。

通过异步数据拷贝+按需实时数据加载机制,GaussDB(for MySQL)实例可在数分钟内达到完整功能可用。

7、并行查询、最大提升资源利用、加快复杂BI分析

针对实时检索、复杂BI SQL定制并行查询功能,开启后同样多表关联查询速度提升10+ 倍。

 


分布式版:最高支持PB级海量存储,性能更强

最近,华为云还对外发布了GaussDB(for MySQL)分布式版。

先来看看GaussDB(for MySQL)分布式版本的架构,它采用share nothing架构,融合华为自研分布式SQL引擎和企业级分布式存储DFV双重优势,业务请求通过负载均衡层转发到分布式SQL引擎层,分布式SQL引擎相关的模块对SQL进行解析、分解、路由到各个分片,最后各个分片返回相应结果汇聚返回给用户端。

整个分布式架构支持多点写入,多点读取,相比主备版,性能也提升了数量级别。

而且通过分库分表,GaussDB(for MySQL)分布式版最高支持PB级海量存储。在内部环境测试,纯写TPS可达百万级,QPS可达千万级,整体性能可随分片数的扩展而成线性提升,可满足几乎所有大型企业集团的核心数据库的要求。

另外,分布式版本底层使用的是分布式存储,在数据扩展方面的优势很大。

 

行业案例说话,GaussDB(for MySQL)到底有多牛?

第一个案例是帮助国内知名保险客户成功迁移到某主流商业数据库,以下从保险业务对数据库的诉求来讲。

首先是要求高性能:客户上线业务为保险核心业务,这块业务需要数据库具备高并发、大表查询的能力,尤其是对接互联网和渠道的业务,对数据库性能要求很高。在保单的批量下单场景方面,GaussDB(for MySQL)凭借其优秀的性能完美支撑业务核心交易场景。

第二个要求极致可靠性:保险行业监管极其严格,绝对不能接受数据丢失,故障恢复需要达到秒级,可靠性和可用性是核心诉求。GaussDB(for MySQL)凭借存储计算分离架构天然优势,保证数据强一致性,同时做到秒级故障切换。

第三个要求兼容性:客户新开发系统适配过MySQL,所以需要一款能完全兼容MySQL的分布式数据库。GaussDB(for MySQL)无论是语法、函数,还是生态工具都可以做到完全兼容,业务无需做修改即可迁移上云。

第四个要求海量存储:保险行业业务量是非常巨大的,磁盘空间需求在数个TB级别,传统的MySQL无法满足,GaussDB(for MySQL)凭借架构上的天然优势,最大支持128TB海量存储,能完美支撑业务对数据海量存储的要求。

第二个案例是基于华为内部业务上云和数字化转型的经验。

华为消费者业务支撑了全球超过上亿客户同时访问,大家熟知的如华为手机、手环、手表、应用市场、运动健康等相关业务都是华为消费者业务的重要组成部分。

如此庞大的业务,海量数据的存储,超高并发访问都是数据库面临的挑战,比如华为手机相关模块的数据量达到数百个TB级别,并发访问量也高达百万QPS,相关的核心交易系统需要支持跨AZ部署,在跨AZ部署的同时还要求RTO小于10秒。

面对这些艰巨挑战,GaussDB(for MySQL)凭借优秀的性能,灵活的扩展性,跨AZ高可用等能力支撑了整个消费者业务的迁移上云。华为消费者业务数据库顺利迁移到GaussDB(for MySQL) ,也证明了它足以满足任何严酷的企业级场景。

最后,正值1024程序员狂欢节,华为云还准备了一大波技术干货直播活动,既能学技术,还能抽盲盒、锦鲤大礼包。

10月23日当天,我们邀请了华为云云原生开源负责人、华为云DevCloud首席技术布道师等10+大咖现身,剖析云原生的行业趋势,倾授云原生实战秘籍。点击观看直播

还有干货直通车,带你揭晓大厂最深层代码技术,点击查看各技术会场,挖掘更多干货。

备注:本文整理自华为云数据库产品专家Ryan在1024程序员节活动上的直播,点击可以回看

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

举报
请填写举报理由
0/200