分享嘉宾:叶金荣 万里数据库开源生态负责人
整理:墨天轮社区

导读
大家好,我是来自万里数据库的叶金荣,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开源社区——做中国广受欢迎的开源数据库相关推荐

  1. 墨天轮访谈 | 百度云邱学达:GaiaDB如何解决云上场景的业务需求?

    分享嘉宾:邱学达 百度云原生数据库资深技术专家 整理:墨天轮社区 导读 业务上云的大背景对弹性与可靠性的要求越来越高,传统架构的单机数据库或是分片数据库已经很难支撑快速增长的业务,导致单机瓶颈.扩容缩 ...

  2. 墨天轮访谈 | 华为云温云博:从客户视角出发,GaussDB(for Redis)究竟“香”在哪里?

    分享嘉宾:温云博 华为云数据库NoSQL团队研发工程师 整理:墨天轮社区 导读 GaussDB(for Redis)采用云原生分布式架构,完全兼容Redis协议,支持丰富数据类型. 提供数据实时持久化 ...

  3. 墨天轮访谈 | 阿里云捷熙:AnalyticDB,人人可用的数据分析服务

    分享嘉宾:李婧玮(捷熙) 阿里云数据库资深产品经理 整理:墨天轮社区 导读 大家好,我是来自阿里云的捷熙.AnalyticDB是融合数据库.大数据技术于一体的云原生企业级数据仓库平台,今天我为大家带来 ...

  4. 墨天轮访谈 | SelectDB 衣国垒:Apache Doris(incubating)1.0版本特性解析与未来规划

    分享嘉宾:衣国垒 Apache Doris Committer.SelectDB 联合创始人&CTO 整理:墨天轮社区 导读 大家好,我是来自Apache Doris社区的衣国垒,也是Sele ...

  5. 2022年5月中国数据库排行榜:墨天轮榜单榜首易位,前九三商三云三开源

    2022 年 5 月的 中国数据库流行度排行榜 已在墨天轮社区发布,本月共有 229 个数据库参与排名,相比上月新增 24 个数据库.榜单前十名的唯一变化是,openGauss 首次登上榜首,前九名的 ...

  6. 知识图谱开源社区_您需要了解的关于开源社区中的倦怠的知识

    知识图谱开源社区 今年年初,我筋疲力尽. 碰巧的是,当时我也在研究倦怠的话题. 我花了一些时间将自己的研究和经验总结出来. 最近,国际疾病分类将倦怠归类为职业现象. 它把倦怠定义为"概念化的 ...

  7. 如何加入Apache开源社区:Apache ServiceComb (incubating) 微服务开源项目实例讲解

    近期,热衷开源和微服务的伙伴们非常关注如何加入到 微服务 开源项目 Apache ServiceComb (incubating) 社区.Apache ServiceComb 作为开源的Apache软 ...

  8. 开源?结缘!Towhee 开源社区与上海人工智能实验室 OpenDataLab 成为开源生态合作伙伴

    今天,很荣幸向 Towhee 开源社区的伙伴和用户们.Milvus 开源社区的生态伙伴们分享这份喜悦:我们与上海人工智能实验室 OpenDataLab 在开源领域建立了合作伙伴关系! 希望在接下来的持 ...

  9. 整合开源治理经验,共谋开源社区发展|2023 开放原子全球开源峰会开源社区治理与运营分论坛即将启幕

    在数智时代广泛连接.同步演进和网状协作特性的催化下,开源社区正在成为技术应用和行业数字化发展的重要推动力量.开展数字技术开源社区的有效治理,对调和相互冲突的内外部需求.协调相互竞合的参与主体.整合差异 ...

最新文章

  1. RFC 协议下载方法
  2. [译] 第五天: GruntJS - 为你解决繁琐重复的任务
  3. button 样式_实战PyQt5: 111-可以使用QSS样式表的部件
  4. LiveVideoStackCon讲师热身分享 ( 七 ) —— 视频编码器的对比与选择
  5. Java 理论与实践:让 J2EE 脱离容器
  6. chimerge算法matlab实现,有监督的卡方分箱算法
  7. 【STM32】HAL库 STM32CubeMX教程十四---SPI
  8. 页面中php传值后循环列表js获取点击的id
  9. BZOJ1925 [Sdoi2010]地精部落 【dp】
  10. android 双系统 一加5,[一加2][双ROM]一加手机2安装双系统教程
  11. destoon php文件,Destoon模板制作简明教程
  12. 编码顺序、frame_num和POC
  13. MAC编译freetype
  14. 速达5000进销存PDA条码打印扫码开单-吉度PDA定制
  15. html audio解决浏览器无法播放问题
  16. 作业三-读书app原型设计
  17. 小学计算机期末评价方案,小学班级管理评价方案
  18. nmds与mds的区别_PCA、PCoA、NMDS、CCA、RDA傻傻分不清楚
  19. 三,标识符(identifier)讲解
  20. pytorch to_device遇到数据迁移不成功的问题

热门文章

  1. vscode构建Vue3.0项目(vite,vue-cli)
  2. 自动化测试用例要怎么写
  3. 华为电脑如何录屏?2个方法教您快速录制!
  4. Redis未授权访问的三种利用方式
  5. mysql html t 制表符_制表符的html
  6. 视图操作 第1关:创建查询视图1
  7. 小米air13.3一代的win10系统重装
  8. oracle sql列转行_oracle 列转行
  9. java图形界面详解_JAVA 图形界面开发基础详解
  10. python项目运行,导致内存越来越大的原因分析