GreatSQL 8.0.27 & 5.7.36背后的事

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 开个番外,在正式的change log之外,单开一篇介绍下GreatSQL 8.0.27-18(晚些时候发布,还在努力合并中)和5.7.36-39两个新版本的一些幕后故事吧。


老叶茶馆

老叶茶馆,泡壶茶,聊聊MySQL。 长期专注MySQL,Oracle MySQL ACE Director,鹅厂云最具价值专家


开个番外,在正式的change log之外,单开一篇介绍下GreatSQL 8.0.27-18(晚些时候发布,还在努力合并中)和5.7.36-39两个新版本的一些幕后故事吧。


1. 为什么要推出GreatSQL 5.7


GreatSQL主打的特性就是针对MGR做了众多提升和改进,另外就是8.0相对5.7其MGR的功能及可靠性也会好很多,因此本来是不想推出GreatSQL 5.7的


但考虑到目前5.7版本还有大量的用户,可能还不便于升级到8.0,为了让这些用户也能体验更好的MGR,才决定也新增5.7分支,主要是针对MGR的稳定性、可靠性及性能等方面做了些提升和优化,尤其是大事务的优化,但在8.0里的新特性都没有,因此还是强烈建议尽早升级到8.0版本,以体验更好更可靠的MGR


2. GreatSQL 5.7针对大事务场景做了什么优化


鉴于此,GreatSQL 5.7.36主要是提升MGR的可靠性、稳定性及性能,尤其是针对大事务场景下的可靠性。


在MySQL 5.7中,MGR事务没有进行分片处理,执行大事务很容易造成超时(并反复重发事务数据),最终导致节点报错并退出集群,甚至会造成mysqld进程被oom kill。

在GreatSQL 5.7中,针对该问题进行优化,并设置事务上限约为150MB,超过该上限事务会失败回滚,但节点不会再退出集群。虽然会对应用造成一定程度的不便,但总好过节点报错退出甚至crash吧。


3. 为什么要引入MGR网络开销超时记录功能


在MGR结构中,一个事务的开销包含网络层以及本地资源(例如CPU、磁盘I/O等)开销,GreatSQL针对MGR的网络层开销进行了多项优化工作,因此在网络层的开销通常不会成为瓶颈。


当事务响应较慢想要分析性能瓶颈时,可以先确定是网络层的开销还是本地性能瓶颈导致的。通过设置选项 group_replication_request_time_threshold 即可记录超过阈值的事件,便于进一步分析。


这个特性对于排查性能问题帮助较大,所以在5.7和8.0中都引入了。


4. 关于仲裁节点MGR很容易被"诟病"的地方是,一个MGR集群通常至少配置3个节点,相对于两节点主从架构来说,的确是增加了服务器成本。


引入仲裁节点功能后,这个苦恼几乎不复存在了,因为仲裁节点所需要的资源非常低,其主要功能是参与MGR投票仲裁,无需存储用户数据以及binlog,开销非常小,因此完全可以在一台服务器上跑多个实例作为仲裁节点,这就非常划算了。


此外,引入这个新功能后,官方的mysql shell很多功能都用不了,需要修改源码,加入对仲裁节点角色的支持。情急之下,仅凭我的三脚猫工夫,居然成功修改mysql shell源码,增加了对仲裁节点的支持。不过之后编译环境倒是折腾了好几天才解决,这些过程已在文章mysql-shell for GreatSQL 8.0.27编译安装及使用里分享了。


5. MySQL官方发版不太严谨


在ARM & CentOS 7环境下编译MySQL 5.7时遇到一个报错:

error:'prctl' was not declared in this scope


需要手动把 prctl.h 头文件copy到MySQL源码目录下,再修改 mysqld.cc 文件,加入include才行。这个问题可参考华为云官网上的这篇文章:error:'prctl' was not declared in this scope。


另外,在编译mysql shell 8.0.27时,发现 CMakeLists.txt 文件中少了一个宏定义,也需要自己手动修改加入才行。MySQL官方对待我报的bug(#106730)时,态度也略显傲慢。。。


有种个人感受,自从MySQL归入Oracle旗下后,虽然也增加了不少优秀的新特性,但引入的新问题也挺多的,官方基本不care来自社区的反馈声音,这其实挺符合Larry的人设的。。。


先扯这么多,在国内搞开源不易,肯定大家多使用GreatSQL和提建议、反馈问题,这就是对我们最大的支持了。

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
敏捷开发 数据可视化 持续交付
带你读《SAFe 4.5参考指南:面向精益企业的规模化敏捷框架 》之一:SAFe基础
SAFe精益–敏捷领导者是终身学习者和老师,他们通过理解和展示精益–敏捷思维、SAFe原则和系统思考,帮助团队构建更好的系统。本书提供了一套在企业的投资组合、价值流、项目群和团队各个层面的完整的工作指南,包括构成框架的各种角色、活动和工件,以及价值观、理念、原则和实践的各种基本要素,并针对SAFe 4.5和SAFe 4.6进行了更新。
|
5月前
|
存储 NoSQL 关系型数据库
编译GreatSQL with RocksDB引擎
这是一个大致的过程,根据您的系统环境,GreatSQL的版本和RocksDB的集成方式,这些步骤可能会有所差异。因此,通常建议您仔细阅读官方文档来获得针对您所处环境的详尽指南。
41 0
|
SQL 存储 Oracle
oracle发展史
oracle发展史
203 0
|
Linux Go 调度
谈谈对 GMP 的简单认识
谈谈对 GMP 的简单认识
|
网络协议 算法 关系型数据库
GreatSQL 8.0.25-17今日发布
GreatSQL 8.0.25-17今日发布
|
算法 关系型数据库 MySQL
GreatSQL MGR优化参考
GreatSQL MGR优化参考
116 0
GreatSQL MGR优化参考
|
人工智能 数据可视化 5G
CloudXR如何推动XR的未来发展
XR(Extended Reality)是指借助计算机图形技术和可穿戴设备所生成的一个真实与虚拟组合的、可人机交互的环境。XR中的“X”只是一个变量,可以代表任何字母,包括VR、AR、MR、HR等多种形式。
|
前端开发 网络协议 关系型数据库
pgsql架构
pgsql架构
418 1
|
存储 运维 NoSQL
Share and Find 系列沙龙之 PHP 专场 No.1
上个周六,我们「Share and Find 系列沙龙之 PHP 专场 No.1」在 又拍云存储 的特别支持下顺利完成。本着“做不一样的沙龙,Share and Find,让每个人都能有所收获”的初衷,下午的分享主要是两个重量级嘉宾的演讲,以及围绕主题相关的一个圆桌提问。接下来我们就详细回顾一下这次的分享内容。
157 0
Share and Find 系列沙龙之 PHP 专场 No.1
|
Oracle 关系型数据库
Oracle积累
Oracle积累
131 0