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

导读
大家好,我是来自万里数据库的叶金荣,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

欲了解更多能够进入墨天轮社区,围绕数据人的学习成长提供一站式的全面服务,打造集新闻资讯、在线问答、流动直播、在线课程、文档阅览、资源下载、常识分享及在线运维为一体的对立平台,继续促成数据畛域的常识流传和技术创新。

关注官网公众号: 墨天轮、 墨天轮平台、墨天轮成长营、数据库国产化 、数据库资讯