墨天轮访谈 | 叶金荣:GreatSQL开源社区——做中国广受欢迎的开源数据库
分享嘉宾:叶金荣 万里数据库开源生态负责人
整理:墨天轮社区
导读
大家好,我是来自万里数据库的叶金荣,GreatSQL开源社区的愿景是做中国广受欢迎的开源数据库,这也是我今天分享的主题。
GreatSQL 社区
GreatSQL开源社区于2021年初成立,自成立以来获得了众多开发者伙伴的积极响应,现已成长为国内活跃的MySQL开源社区。社区致力于通过开放的共享合作,构建国内自主MySQL版本及开源数据库技术,推动中国开源数据库及应用生态的繁荣发展。
2021年8月,GreatSQL开源数据库首个版本发布,并于同年获得“Gitee最有价值开源项目”荣誉称号。

图1 GreatSQL 社区发展历程
GreatSQL 优势特性
1、地理标签
首先为大家介绍GreatSQL 地理标签的功能,这个新功能主要用于解决多机房数据同步的问题。
新增选项 group_replication_zone_id,用于标记节点地理标签。该选项值支持范围 0 ~ 8,默认值为0。当集群中各节点该选项值设置为不同的时候,就被认定为设置了不同的地理标签。在同城多机房部署方案中,同一个机房的节点可以设置相同的数值,另一个机房里的节点设置另一个不同的数值,这样在事务提交时会要求每组 group_replication_zone_id 中至少有个节点确认事务,然后才能继续处理下一个事务。这就可以确保每个机房的某个节点里,总有最新的事务,从而保证数据不会丢失。

图2 GreatSQL优势特性:地理标签
2、仲裁节点
在GreatSQL 8.0.25-16版本中,新增MGR Arbitrator节点(仲裁节点)角色。
该节点只参与MGR投票仲裁,不存放实际数据,也无需执行DML操作,因此可以用一般配置级别的服务器,在保证MGR可靠性的同时还能降低服务器成本。

图3 GreatSQL优势特性:仲裁节点
3、快速单主
第三个优势特性是新增快速单主模式,在这个模式下,不再采用MySQL MGR原有的认证数据库方式。新增选项group_replication_single_primary_fast_mode用于设置是否启用,以及具体采用哪种模式。
快速单主模式特别适合在跨机房部署,压力测试以及内存要求不高等多种场景。这种模式弱于传统的异步复制,但强于半同步复制,且没有MGR默认的认证数据库可能消耗较大内存的问题。

图4 GreatSQL优势特性:快速单主
4、智能选主/自定义选主策略
智能选主、自定义选主策略是GreatSQL 新版本的又一优势特性。原来的选主策略中没有判断各节点最新事务状态,可能会导致丢失部分事务数据。
在GreatSQL中,新增选项 group_replication_primary_election_mode 用于自定义选主策略,可选值有以下几个:
- WEIGHT_ONLY,还是按照上述传统模式自动选主,这是默认值。
- GTID_FIRST,优先判断各节点事务应用状态,自动选择拥有最新事务的节点作为新的主节点。
- WEIGHT_FIRST,传统模式优先,如果没有合适的结果再判断各节点事务状态。推荐设置为该模式。

图5 GreatSQL优势特性:智能选主/自定义选主策略
5、并行查询
最后要给介绍的是并行查询,这也是我认为最重要的一个特性。
在并行查询中,对B+树多个子树并行扫描后再聚合,大大提升查询效率。在TPC-H测试中,最高可提升30倍,平均提升15倍。并行查询的功能特别适合汇总报表之类的SAP、财务统计等业务。

图6 GreatSQL优势特性:并行查询
下方InnoDB并行查询性能提升的效果展示,提升3.491倍-32.823倍不等。

图7 InnoDB并行查询性能提升效果
关于GreatSQL的功能提升与故障恢复
1、功能提升
除了以上的五个特性以外,GreatSQL 8.0.25-16 的新版本中还有哪些新功能提升了性能呢?
- 优化了加⼊节点时可能导致性能剧烈抖动的问题
- 解决节点异常退出集群时导致性能抖动的问题
- MySQL 中,paxos通信机制较为粗糙,当节点异常退出时,会造成较⻓时间(约20~30秒)的性能抖动,最差时TPS可能有好⼏秒都降为0
- GreatSQL中优化后只会产⽣约1~3秒的性能⼩抖动,最差时TPS可能只损失约20% ~ 30%
- 解决磁盘空间爆满时导致MGR集群阻塞的问题
- 解决了⻓事务造成⽆法选主的问题
- 完善MGR中的外键约束机制,降低或避免从节点报错退出MGR的⻛险
- 解决多主模式下或切主时可能导致丢数据的问题
- 优化事务认证队列清理算法,规避每60s抖动问题
- 修复了recover过程中⻓时间等待的问题
- 修复了传输⼤数据可能导致逻辑判断死循环问题
- 节点异常状态判断更完善
2、故障恢复
- 修复了InnoDB并⾏查询crash的问题
- 修复了协程调度不合理可能会造成在⼤事务时系统错误判断为⽹络错误的问题
- 修复了新加⼊节点在追数据时,由于超时导致连接提前关闭的问题
- 修复了recovering节点被中途停⽌导致的数据异常问题
- 修复了将传统主从环境下产⽣的binlog导⼊MGR可能引起死循环的问题
- 修复了多个可能导致MGR视图异常的问题
- 修复了多个可能导致MGR异常崩溃的问题
在这里,我将GreatSQL全新的8.0.25-16版本与MySQL 8.0.25的社区版本进行对比,为大家详细介绍新版本的特点以及优化升级的内容。此次8.0.25-16版本更新后,GreatSQL的性能、稳定性都得到了大幅提升。


图8 GreatSQL8.0.25-16版本与MySQL 8.0.25社区版本对比
GreatSQL 未来展望
在未来,GreatSQL开源数据库将打造更多企业级特性,探寻更适⽤于⾦融级的应⽤场景,持续优化Paxos机制,提升MGR可靠性及性能,提升大事务的并发性能及稳定性,以便应对更多的业务场景,为用户带来更流畅的使用体验。


图9 GreatSQL未来展望
GreatSQL开源社区将在万里数据库的主导和推动下,持续关注开源技术演进革新,完善社区能力,共建可持续发展的、多方共赢的开源数据库产业生态,为重点行业赋能。
我今天的分享就到这里,谢谢大家!
更多精彩内容,欢迎大家观看现场视频回放与会议资料
视频回放:https://www.modb.pro/video/6498
会议资料:https://www.modb.pro/doc/64404
- 查看原文:https://www.modb.pro/db/413518
- 查看【国产数据库沙龙】开源生态专场文章、视频回放资源:https://www.modb.pro/topic/412121
欲了解更多可以进入墨天轮社区,围绕数据人的学习成长提供一站式的全面服务,打造集新闻资讯、在线问答、活动直播、在线课程、文档阅览、资源下载、知识分享及在线运维为一体的统一平台,持续促进数据领域的知识传播和技术创新。
关注官方公众号: 墨天轮、 墨天轮平台、墨天轮成长营、数据库国产化 、数据库资讯
墨天轮访谈 | 叶金荣:GreatSQL开源社区——做中国广受欢迎的开源数据库的更多相关文章
- 我们将要建立的EasyDarwin开源社区
从12年12月我开始建立EasyDarwin开源项目,已经三年多的时间了,从开始最简单的一个开源流媒体服务器项目,如今已经发展成为目前国内最大的一个流媒体开源社区,截至目前已经有十几个项目在Githu ...
- 做一名开源社区的扫地僧——从Bug report到Google Summer of Code(GSoC):从200个bug到5000美金
今年的软件自由日(SFD),我在广州Linux用户组的线下活动上做了一个分享,主题叫做<做一名开源社区的扫地僧(上)>.我把演讲的内容重新整理扩充, 写出了文字版, 希望可以跟更多朋友分享 ...
- 2017云计算开源峰会 你是想听Linux谈开源还是想听OpenStack谈开源?
2017年,善于把握机遇的企业们不是正在开源,就是走在去开源的路上-- 开源是不是就意味着免费? 开源企业就是要当"活雷锋"? 开源项目究竟如何运作?如何参与开源社区? 如何获得最 ...
- GreatSQL特性介绍及未来展望--叶金荣|万里数据库
「3306π」是由业内知名MySQL专家叶金荣.吴炳锡首发倡议成立,围绕MySQL及云数据库.大数据等周边相关技术的技术爱好者的社区.致力于把互联网技术带到传统行业里,推动开源技术在传统行业中应用.本 ...
- 叶金荣:MySQL通用优化技巧
转自:http://mp.weixin.qq.com/s?__biz=MjM5NDE0MjI4MA==&mid=208777870&idx=1&sn=6efddd6283e4d ...
- MySQL通用优化 叶金荣!!!
http://mp.weixin.qq.com/s?__biz=MjM5NDE0MjI4MA==&mid=208777870&idx=1&sn=6efddd6283e4deb3 ...
- Tornado的一个开源社区
https://link.zhihu.com/?target=http%3A//www.tornadoweb.org/en/stable/ 基于Tornado的一个开源社区 GitHub - shiy ...
- Linux已经全然统治了这个世界:反对开源社区愚不可及
原文来自:http://readwrite.jp/archives/9977 不管一个企业多强大,它都不存在和开源社区抗衡的实力 十年前.Unix占有最快的计算机世界排名前10位的五席,以及超级计算机 ...
- 积极拥抱.NET Core开源社区
潘正磊在上海的Tech Summit 2018 大会上给我们的.NET Core以及开源情况带来了最新信息. .Net Core 开源后取得了更加快速的发展,目前越活跃用户高达400万人,每月新增开发 ...
- 算法工程师想进一步提高竞争力?向TensorFlow开源社区贡献你的代码吧
算法工程师为什么也要向社区贡献代码? [作者:DeepLearningStack,阿里巴巴算法工程师,开源TensorFlow Contributor] “做算法的人要熟悉算法框架源码吗?算法工程师难 ...
随机推荐
- 最新SEO自动外链蜘蛛池工具促进百度快速收录使用方法介绍
此工具集成市面上所有自动外链网站的资源链接,经过合并.去重.筛选.验证 总结出最终的外链资源 ,软件实时更新 本软件将您繁杂的外链推广转为自动化进行,并且加入站群的支持,您只需要将你的站群域名粘贴到软 ...
- 【H5】12 表单 其一 第一个表单
本系列的第一篇文章提供了您第一次创建HTML表单的经验, 包括设计一个简单表单,使用正确的HTML元素实现它, 通过CSS添加一些非常简单的样式,以及如何将数据发送到服务器. HTML表单是什么? H ...
- 【OracleDB】 06 多表查询
多表查询的目的: 从两张以上的数据表中查询每张表的字段 笛卡尔集的问题: 查询职员表一共107条记录 select count(employee_id) from employees; 查询部门表,一 ...
- 全球首颗车规5纳米 高性能智驾芯片蔚来神玑NX9031 流片成功
地址: https://weibo.com/tv/show/1034:5060774108790867 https://www.bilibili.com/video/BV1JG411r7LR/
- 新手入门深度学习:在不使用Google的情况下如何在国内获得免费的算力 —— 算力共享,驱动人工智能创新的新引擎
分享链接地址: 算力获新生 | 算力共享,驱动人工智能创新的新引擎
- 在vscode中通过修改launch.json文件为项目添加启动参数——在launch.json文件中修改args变量
以前一直在使用pycharm,不管怎么说毕竟国内外的Python编程者大部分都更支持pycharm,并且认为pycharm是Python语言编程中最好用的编辑器,但是随着国内编程人员一茬一茬的兴起很多 ...
- [NOI2007] 项链工厂 题解
前言 题目链接:洛谷:Hydro & bzoj. 题意简述 yzh 喜欢写 DS 题!你要维护一个环: 顺时针移动 \(k\) 位: 翻转 \(2 \sim n\): 交换 \(i\) 与 \ ...
- 最新AI生成视频工具!效果不输快手可灵,CogVideoX下载介绍
要说AI生成视频最火的项目,当属国产的快手可灵了,甚至比OpenAI的Sora还要火,前者还是个ppt,可灵已经在落地公测了,博主在前段时间申请试用通道的时候,竟然排到几十万人开外的位置,好在最后还是 ...
- mfc的ClistCtrl控件列的排序
在网上看了许多排序的方法,都没看懂,初学者的悲剧,然后就自己弄了个,请大家指正. ClistCtrl控件的行带着一个结构体,不过那结构体不好懂,看得眼花缭乱.好多也弄不明白,就自己写了个结构体,把一行 ...
- Redis常见问题和性能监控
1 Redis常见面试问题 1.1 Redis是单线程还是多线程 Redis不同版本之间采用的线程模型是不一样的,在Redis4.0版本之前使用的是单线程模型,在4.0版本之后增加了多线程的支持. 在 ...