热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

墨天轮访谈|叶金荣:GreatSQL开源社区——做中国广受欢迎的开源数据库

分享嘉宾:叶金荣万里数据库开源生态负责人整理:墨天轮社区导读大家好,我是来自万里数据库的叶金荣,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

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

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



推荐阅读
  • Linux负载均衡LVS(IPVS)
    一、LVS简介LVS是LinuxVirtualServer的简称,也就是Linux虚拟服务器,是一个由章文嵩博士发起的自由软件项目,现在已经是Linux ... [详细]
  • 从分布式数据库选型的第一件事谈起
    本文很长,谨慎阅读现在在我们的面前摆着太多的分布式数据库可以让我们选择,那么如果我想先让 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试知识点之数据库压力测试方法小结相关的知识,希望对你有一定的参考价值。 ... [详细]
  • TiDB | TiDB在5A级物流企业核心系统的应用与实践
    TiDB在5A级物流企业核心系统的应用与实践前言一、业务背景科捷物流概况神州金库简介二、现状与挑战神州金库现有技术体系业务挑战应对方案三、TiDB解决方案测试迁移收益问题四、说在最 ... [详细]
  • insert into select 主键自增_为什么 MySQL 的自增主键不单调也不连续
    为什么这么设计(Why’sTHEDesign)是一系列关于计算机领域中程序设计决策的文章,我们在这个系列的每一篇文章中都会提出一个具体的问 ... [详细]
  • 一个不错的JDBC连接池教程(带具体例子)
    1.前言数据库应用,在许多软件系统中经常用到,是开发中大型系统不可缺少的辅助。但如果对数据库资源没有很好地管理(如:没有及时回收数据库的游 ... [详细]
  • 1、Everything:速度最快最好用的文件搜索工具,可以基于文件名极速搜索、瞬间定位文件,所有匹配的文件或文件夹都会实时显示,Windows7之后为减少硬盘占用,在关闭索引功能后不能得到“即搜既 ... [详细]
  • 【JVM技术专题】深入分析CG管理和原理查缺补漏「番外篇」
    前提概要本文主要针对HotspotVM中“CMSParNew”组合的一些使用场景进行总结。自Sun发布Java语言以来,开始使用GC技术来进行内存自动管理࿰ ... [详细]
  • 对mysql的总结与反思_一次DB故障引起的反思和MySQL Operator选型
    前言在一次数据库故障后,我们发现业务库会根据业务的等级会划分多个MySQL实例,许多业务库会同时属于一个MySQL实例,当一个库引发问题后 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 关于我们EMQ是一家全球领先的开源物联网基础设施软件供应商,服务新产业周期的IoT&5G、边缘计算与云计算市场,交付全球领先的开源物联网消息服务器和流处理数据 ... [详细]
  • 在yaml文件中添加以下配置信息本人用activiti版本是6.0.0,是若依微服务版.目前问题是只要启动微服务控制台隔十秒查询一次activiti定时任务sql。activiti ... [详细]
  • 是不是zlib是这些库的压缩算法的实现库,而这么多库它们只是在打包的时候使用了zlib进行压缩而已.而具体的打包格式就有ZIP,BZIP2,GZ之分?但是在我们在用gz压缩时候通常之前 ... [详细]
  • 智能家居巨头 Aqara 基于 KubeSphere 打造物联网微服务平台
    智能家居巨头 Aqara 基于 KubeSphere 打造物联网微服务平台 ... [详细]
  • DDOSDDOS的中文名叫分布式拒绝服务***,俗称洪水***DDoS***概念DoS的***方式有很多种,最基本的DoS***就是利用合理的服务请求来 ... [详细]
author-avatar
陈家小女u
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有