苦开源MySQL瓶颈久矣,不妨试试GaussDB(for MySQL)分布式版

技术火炬手 发表于 2020/09/19 18:28:32 2020/09/19
【摘要】 本文将进一步解读GaussDB(for MySQL)分布式版本的特性,在此之前,先来聊一聊开源MySQL。

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

本文将进一步解读GaussDB(for MySQL)分布式版本的特性,在此之前,先来聊一聊开源MySQL。

苦开源MySQL架构瓶颈久矣

开源MySQL主备架构已经发展多年,在各行各业都有着广泛的应用,随着互联网、5G、AI等技术的不断发展,各种结构的数据量也在爆炸式的增长,同样在关系型场景,数据量也在不断的突破上限。数据量的暴增,超高并发场景的不断出现,对传统数据库带来了极大的挑战,开源MySQL架构的瓶颈逐渐暴露。

首先,传统开源MySQL架构中,为确保整体架构的可用性,备库是不承担读写请求的,只做高可用,这本身就是一种浪费。

其次在电商促销等场景,数据库的访问压力会因为活动的到来成倍增长,这时候添加只读节点来承载流量是通用的解决方案,但是添加只读节点的时间和数据量成正比,往往需要几个小时,这可能会对业务带来较大影响。

另外,在一些数据误删除场景中,急需找回数据,传统的MySQL备份恢复在TB级以上都需要数个小时,极大影响业务恢复的时间。

最后,传统的MySQL主备架构由于网络的稳定性以及数据库本身性能问题带来的复制延时,会进一步影响数据库的整体性能。

这些传统MySQL主备架构的瓶颈已经存在很多年,华为云数据库也在不断的成长中不断的探索如何解决这些问题,华为云于今年正式商用了GaussDB(for MySQL)原生数据库,就是为了解决这些问题。

完全兼容开源MySQL生态,秒级扩容无难题

GaussDB(for MySQL)是华为云自研的新一代企业级OLTP数据库,目前已经广泛应用于电商、金融、政务、互联网等业务场景。GaussDB(for MySQL)支持两种部署模式,主从模式和分布式模式,主从支持1写15读,相比开源MySQL性能提升7倍,支持只读节点分钟级扩展,和数据量无关,主备解耦,最大支持128T海量数据存储,底层使用华为企业级分布式存储DFV,主节点和只读节点共享一份数据,做到了主备解耦,数据强一致性,同时支持跨3AZ部署,满足金融级容灾诉求。

接下来将进入我们今天的主角——GaussDB(for MySQL)分布式版。

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

1.jpeg

分布式版支持分库分表,读写分离,自动负载均衡,底层分片支持多节点写入,可完美解决传统MySQL架构面临的各种瓶颈,是企业级核心数据库上云的最佳选择。

产品特性方面,GaussDB(for MySQL)分布式版和标准版一样,完全兼容开源MySQL,无论是常用的Navicat、MySQL work bench,还是MySQL JDBC、ODBC连接器,以及常用的开发框架hibernateMyBatisDruid等都可以做到很好的兼容,让用户的业务可以做到平滑迁移上云,业务无需做针对性的改造。

2.jpeg

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

3.jpeg

除此之外,GaussDB(for MySQL)分布式版还有优秀的扩展性,由于底层使用华为企业级分布式存储DFV,单分片底层共享一份数据,存储容量支持自动扩容,无需提前购买存储。同时分片节点支持秒级扩容,相比传统分布式数据库,分片扩容带来的数据迁移,效率提升不止一个数量级。

另外利用企业级分布式存储DFV的能力,可做到热点数据的快速迁移,极大提升数据库访问效率。

4.jpeg

两个案例现身说法,GaussDB(for MySQL)有多优秀

在介绍了GaussDB(for MySQL)分布式版的相关特性后,下面分享GaussDB(for MySQL) 在企业场景中的应用。

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

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

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

5.jpeg

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

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

6.jpeg

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

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

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

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

对于使用商业数据库的客户来说,业务不影响成为其上云转型的基本要求,基于此,华为云的数据库产品+24小时专家级别服务,配套全栈工具链路切换能力,真正做到不影响业务的前提下,帮助客户完成数据库业务的搬迁和替换。


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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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