青出于蓝而胜于蓝——揭秘全新的 HWSQL

MySQL是世界上最流行的开源数据库,集可靠、易用、功能丰富、适用范围广等特点于一身,尤其对开发者友好,使其成为华为云关系型数据库(RDS)用户的首选。尽管MySQL备受关注,更是各种应用的第一选择,但也面临着诸多挑战,其社区版在云上和线下技术局限性会造成一定的影响,难以完全满足用户的需求。

现由华为云RDS团队自研的HWSQL即将公测。那么,华为云RDS的明星产品HWSQL---卓越的云上MySQL,到底解决了哪些难题?技术上又有哪些突破?

华为云RDS for MySQL

通常来说,在生产环境中,管理员采用集群部署MySQL来保证服务可用性并提高性能。尽管MySQL易用性极高,但配置高可用数据库集群仍是一个艰巨的任务。在线下或者在IaaS上部署MySQL,用户需要花时间了解MySQL的复制机制,比如配置主备实例、只读副本,浮动IP地址等。同时,他们还需要特别关注诸如安全和备份策略等问题。这使得他们将在这方面耗费大量的时间和精力。

现在,再也不用担心这些问题了。华为云RDS以用户需求为导向,从用户体验出发,真正解决用户的痛点,避免了这些繁琐的流程。现在,用户只需访问华为云官网,有针对性的选择与之相适应的实例规格类型,仅需回答几个与网络、数据库配置、备份策略相关的问题,即可在最短的时间内获得一个可用数据库。

RDS forMySQL是一个完全托管的在线WEB服务,所有配置皆可通过console或RDS API完成。同时,还可以通过IP地址和端口等采用加密连接的方式访问RDS服务。

可靠可扩展备份故障不用愁

华为云RDS可自动安装,是基于最佳实践来部署MySQL集群。不仅数据库的安全性极高,还能定期进行备份,并可轻松完成一定范围内的软硬件故障恢复,数据库管理员再也不用为备份和故障发愁了。


   图 1:华为云RDSfor MySQL

注:图1是典型的RDS for MySQL部署示例。MySQL运行在ECS上,其数量取决于RDS的部署方式。通常包含一个MySQL主实例、一个备实例和最多五个只读副本为查询密集型的应用增加吞吐量和可扩展性。

MySQL中库表数据存放在可靠的华为块存储云硬盘(EVS)中。EVS提供三副本,增加数据可靠性。RDS服务支持手动和自动数据库备份,数据库备份存储在低成本的对象存储服务(OBS)中以确保数据库是可恢复的,防止软件错误、人为错误、或恶意活动等。整个环境监控采用华为云监控服务(CES),主动通知RDS环境相关的任何问题。

开源MySQL面临的挑战

高并发场景下性能差

MySQL社区版中,使用InnoDB作为存储引擎,不论是云上还是线下,用户都会面临一些挑战。当活跃的数据库连接数过多(一般情况下,连接数大于500),性能将变差,可能会造成查询响应缓慢。尤其是MySQL5.6,并发连接数太多会直接影响数据库性能。即便采用更高规格的实例也解决不了这个问题,根本原因在于MySQL社区版处理线程的方式。当并发连接增多,锁和资源争用问题会导致性能降低。

复制延迟突出

开源MySQL面临的第二个挑战是复制延迟问题。在关系型数据库中,数据库的更新操作会被同步写入事件日志以保证其可恢复。在MySQL中,这种日志叫二进制日志(或“Binlog”),使用二进制日志能保证故障场景下事务可恢复。例如,若需要将一个旧的数据库备份恢复到最新状态,管理员可以重放二进制日志中的事务。

在MySQL数据库中,备库、只读副本与主库之间的同步是依靠二进制日志重放来实现的。在MySQL5.7以前都没有实现真正的多线程复制,导致从库的复制延迟问题很突出。

故障恢复时间长

主实例高负荷的情况下,备实例的复制可能会滞后。如图2所示,备实例的事务处理能力远远落后于主实例,导致事务积压。


图2 RDS forMySQL主备库TPS和复制延迟情况  

注:通过开启半同步复制并运行SysBench 0.5压测,在MySQL5.6.36上获取到如图2所示的结果。该场景包括MySQL主实例和备实例,规格均为32 v CPUs,128GB,客户端采用华为云标准的8 v CPUs,32GB VM。测试的数据库大小是1.5GB,包含64个表,每个表100000行。在标准SysBench压测中,读操作(查询)与写操作(插入,刷新,删除)的比例是14:4。

如上图红线所示,在有负载的场景下,主实例能每秒处理大约1200个事务(每秒22,000次查询)。不幸的是,备实例收集和执行binary日志中事务的速度较慢,处理事务能力远落后于主实例,每秒只能复制和确认200多个事务。高负荷的情况越持久,事务积压越严重,故障情况下恢复所需的时间越长。在上面的示例中,如果主实例在1,000秒之后故障,备实例要花费大约750秒(12分多钟),去重放落后的日志,故障恢复时间因此变得很长。

华为云RDS for HWSQL

尽管并不是所有的环境都存在这个问题,但是对于事务繁忙且对故障恢复时间有要求的数据库来说,上面描述的问题可能是个很大的挑战。幸运的是,华为云RDS forHWSQL服务为大型生产数据库解决了这些问题和其他挑战。

HWSQL是高性能、100%兼容MySQL、由华为自研的数据库服务。不仅具备RDSfor MySQL的所有特性,同时提供更多功能:

· 事务吞吐量约为MySQL社区版的3倍,支持更多的用户连接,同时不影响响应速度。

· 解决并发连接带来的挑战,即使高达8000并发连接,查询性能依旧良好。

· 采用更快、更可靠、无损的半同步复制协议,即使在超高负荷的情况下,也能保证故障快速恢复。

· 充分利用大规格实例的资源,发挥强大HWSQL数据库引擎的优越性能和可扩展性。

采用图1中相同的硬件,相同的SysBench模型进行性能压测之后,RDS forHWSQL明显优于开源MySQL,吞吐量是MySQL社区版本的三倍。在sysbench压测中,每个事务包括18个离散查询,不论数据库连接数有多少,RDS for HWSQL的事务吞吐量达到90000QPS(或者5000TPS),并且时延很低。


图3 -华为云RDS for HWSQL与MySQL性能压测对比  

注:图3是使用sysbench0.5对多个数据库引擎压测获取的测试结果。该场景包括MySQL主实例和备实例,规格均为32v CPUs,128GB,客户端采用华为云标准的8 vCPUs,32GB VM。测试的数据库大小为150GB,包含64个表,每个表10000000行。

对DBA来说,情况变得明朗。采用上面相同的高负荷环境测试RDS for HWSQL性能。复制到备实例的速度相当快,备实例基本上与主实例保持同步。如果主实例故障,快速复制可以保障备实例立即恢复操作,减少停机时间,提高业务可用性。同时,RDSfor HWSQL采用优化的半同步复制协议来保证数据不仅写入而且提交到副本上,进一步提高可靠性。RDS forHWSQL减少主实例与备实例或者只读副本的延迟,即使在高吞吐量的环境下,也能保证恢复快速无损。从下面图4不难看出,使用HWSQL可大幅降低复制延迟。


图4:华为云RDS for HWSQL的复制延迟情况  

卓越的RDS云服务

HWSQL除了以上特性外,还在诸多方面有所突破,比如:

· 强大的线程池插件支持高并发连接

· 事务级MTS并行复制可降低复制时间,快速恢复服务,保证只读副本的数据与主库一致

· 优化的半同步协议确保数据完整性

· 多个只读事务优化

· 写事务和日志优化

IT优选——HWSQL值得拥有

可以说,数据库是大部分在线应用和服务的核心,同时也对企业的发展作用巨大。而数据库的完整性、可用性及恢复时间,都将直接影响数据库管理员及业务人员的工作成效,因而它们是IT和业务人员关注的焦点。

如果还在为工作流烦恼,如果还在为低效率担心,如果还在为性能担忧,那么不妨选择性能一流、可靠性、可用性,且易于部署和管理的RDS forHWSQL。实力派RDS for HWSQL非常值得一试。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容