墨天轮访谈 | 叶金荣: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] “做算法的人要熟悉算法框架源码吗?算法工程师难 ...
随机推荐
- Snipaste截图工具-测试工程师强推
Snipaste主要功能是截图和贴图,网上下载直接安装即可. 个人认为Snipaste比其它截图好用的点: 快捷键简单.Snipaste只需按F1截图,不会和其它截图工具的快捷键冲突 贴图功能.贴图功 ...
- Megacity Unity Demo工程学习
1.前言 Megacity Demo发布于2019年春,本博文撰写于2024年,ECS也早已Release并发布了1.2.3版本.不过好在核心变化不大,多数接口也只是换了调用名称, 该Demo相较于之 ...
- 【Java】 Springboot+Vue 大文件断点续传
同事在重构老系统的项目时用到了这种大文件上传 第一篇文章是简书的这个: https://www.jianshu.com/p/b59d7dee15a6 是夏大佬写的vue-uploader组件: htt ...
- 【Spring】06 Aop切面功能
什么是Aop? Aspect Oriented Programming 面向切面编程 通过预编译的方式和运行期动态代理实现程序功能统一维护的一种技术 是OOP的延续,也是Spring第二个核心内容 可 ...
- If Messi doesn't understand how to respect others, then he also doesn't deserve to receive respect from others.
If Messi doesn't understand how to respect others, if he doesn't understand the spirit of honoring c ...
- 【转载】 SLI导致双显卡被TensorFlow同时占用问题(Windows下) ---------- (windows环境下如何为tensorflow安装多个独立的消费级显卡)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/qq_21368481/article/d ...
- java中获取本机IP
1.背景 2.代码 package com.XXX.common.util; import cn.hutool.core.util.StrUtil; import lombok.extern.slf4 ...
- [CEOI2018] Lottery 题解
前言 题目链接:洛谷. 题意简述 给出序列 \(a_1 \ldots a_n\) 和常数 \(l \leq n\),定义: \[\operatorname{dis}(i, j) = \sum _ {k ...
- Apache DolphinScheduler 3.1.8 版本发布,修复 SeaTunnel 相关 Bug
近日,Apache DolphinScheduler 发布了 3.1.8 版本.此版本主要基于 3.1.7 版本进行了 bug 修复,共计修复 16 个 bug, 1 个 doc, 2 个 chore ...
- Sealos 就是小团队的神器
作者:阳明.Kubernetes 布道师,公众号 K8s 技术圈主理人 最近我们新开发了一个项目 fastclass.cn,这个项目是一个独立开发者的学习网站,我们的目标是帮助你使用 Figma.Py ...