Apache ShardingSphere 5.1.1 正式发布
在 Apache ShardingSphere 5.1.0 发布后不足两个月的时间里,ShardingSphere 合并了来自全球的团队或个人的累计 698 个 PR,为大家带来 5.1.1 新版本。该版本在功能、性能、测试、文档、示例等方面均有不少优化。
特别是性能方面,采用业界标准的 TPC-C 测试模型,在 16 台物理服务器上运行 Apache ShardingSphere 5.1.1 与国产数据库 openGauss 3.0,取得超过 1000 万 tpmC 的优异成绩,行业同等规模下性能最好!
本文将给大家介绍 ShardingSphere 5.1.1 版本更新内容。
作者介绍:吴伟杰,SphereEx 基础设施研发工程师,Apache ShardingSphere PMC。目前专注于 Apache ShardingSphere 接入端及 ShardingSphere 子项目 ElasticJob 的研发。
本次 Apache ShardingSphere 5.1.1 版本更新主要是对 5.1.0 版本的功能与性能进行优化及问题修复,接下来将介绍部分更新内容。
内核相关
内核是 ShardingSphere 的基础,打造功能完备、稳定、高性能的内核是 ShardingSphere 不变的目标。在 5.1.1 中,ShardingSphere 在内核层面优化了很多逻辑,修复了数据分片、读写分离、数据加密等场景在上一版本中发现的问题,并使各个场景在性能方面均有不同程度的提升。
在数据库方言方面,内核增加了对 MySQL 表空间的支持,并提升了对 Oracle、SQL Server、PostgreSQL、openGauss 等数据库的 SQL 支持度。另外,ShardingSphere 内核也实现了对 PostgreSQL/openGauss 的 schema 这类三层结构的初步支持,后续版本会持续完善。
接入端
本次更新修复了 ShardingSphere-JDBC 的一个潜在性能问题风险点,优化了 ShardingSphere-JDBC 内部与数据库连接池非必需的交互逻辑,减少了 ShardingSphere-JDBC 的性能开销。
在 ShardingSphere-Proxy 方面,MySQL/PostgreSQL 数据类型的支持度有所提升。ShardingSphere-Proxy MySQL 偶发性的 ResultSet closed 报错问题被修复,除此之外,ShardingSphere-Proxy MySQL 在协议层也初步支持执行多语句以提升批量操作性能。
在客户端支持度方面,ShardingSphere-Proxy PostgreSQL 提升了对 PostgreSQL JDBC Driver 42.3.x 的支持度,ShardingSphere-Proxy openGauss 提升了对 openGauss JDBC Driver 3.0 的支持度。
弹性伸缩
在本次更新中,除了修复迁移作业报错后无法通过 DistSQL 重启的问题外,弹性伸缩的健壮性有所提升,并且实现了源端停写及恢复写、部分表扩缩容的新特性。对于不符合迁移条件的情况,弹性伸缩能够快速失败,及时发现抛出问题,避免用户付出额外的时间成本。
DistSQL
DistSQL 在用户体验方面进行了优化,增加了更多的校验,减少了用户在使用 DistSQL 中配置出错的可能性。同时修复了部分用户输入与 DistSQL 关键字冲突的问题。
分布式治理
在读写分离与数据库发现方面,除了原有的 MGR,MySQL 新增了通过查询主从延时实现的数据库发现方式,可以通过获取从库延时自动切换读写分离数据源,减少用户使用动态读写分离的门槛。
在集群模式下,元数据存储结构进行了一定的优化与重构,因 ZooKeeper 会话超时、表名大小写不匹配等原因导致的问题均已被修复。
分布式事务
在事务方面,ShardingSphere-JDBC 新增了对 Savepoint 的支持,ShardingSphere-Proxy 则在原有对 LOCAL 事务 Savepoint 支持的基础上,增加了在 XA 场景下对 Savepoint 的支持。
使用 Narayana 作为 XA 的实现时,ShardingSphere 能够配置 Narayana,让用户使用 XA 更方便。
使用 PostgreSQL/openGauss 时,当在事务中发生异常,ShardingSphere 能够正确中止事务并自动回滚。
以上是对 Apache ShardingSphere 5.1.1 部分更新内容的介绍,详细内容可以参考更新日志,后续 ShardingSphere 社区会发布对部分功能特性的详细解读,敬请期待。ShardingSphere 5.1.1 在 API 层面没有变动,在功能、性能方面均有不少提升,欢迎大家升级使用。
更新日志
新特性
-
内核:PostgreSQL 支持
alter materialized view
-
内核:PostgreSQL 支持
declare
语法 -
内核:PostgreSQL 支持
discard
语法 -
内核:PostgreSQL 支持
$$
标识 -
内核:支持 MySQL 创建表空间语句
-
弹性伸缩:实现源端停写及恢复写
-
弹性伸缩:支持部分表扩缩容
-
DistSQL:新增语法
SHOW UNUSED RESOURCES
-
分布式治理:治理中心新增持久化 XA Recovery Id
-
分布式治理:数据库发现新增延迟主从延迟功能
-
分布式事务:ShardingSphere-Proxy 支持 savepoint
-
分布式事务:PostgreSQL & openGauss 事务块内异常,自动回滚
-
分布式事务:Narayana XA 事务易用性
-
分布式事务:ShardingSphere-JDBC 支持 savepoint
优化
-
内核:重构内核功能代码提升性能
-
接入端:减少 ShardingSphere-Proxy Docker 镜像体积
-
接入端:ShardingSphere-Proxy 支持使用
set names
等语句设置字符编码 -
接入端:ShardingSphere-Proxy MySQL 支持批量语句
-
接入端:ShardingSphere-Proxy 支持 openGauss JDBC Driver 3.0 客户端
-
弹性伸缩:在 ShardingSphere-Proxy 集群中只有一个 Proxy 节点需要做完成检测
-
弹性伸缩:优化 input 和 output 配置里面的字段类型,从 int 改为 Integer,方便通过 DistSQL 配置为空
-
弹性伸缩:优化 MySQL 校验和 SQL
-
弹性伸缩:优化进度删除和进度检查
-
弹性伸缩:优化 FinishedCheckJob 在错误状态下不能做完成检测
-
弹性伸缩:如果存在不符合迁移条件的表,尽快报错
-
弹性伸缩:PipelineAPIFactory 创建 GovernanceRepositoryAPI 的时候复用 ClusterPersistRepository
-
弹性伸缩:升级 jobId 生成算法;jobId 支持幂等性
-
DistSQL:
CREATE/ALTER ENCRYPT RULE
语法支持配置数据类型和长度 -
DistSQL:统一
SHOW ALL VARIABLES
与SHOW VARIABLE
语法的展示结果 -
DistSQL:
DROP BINDING TABLE RULES
语法消除绑定顺序对删除结果的影响 -
DistSQL:
SHOW INSTANCE LIST
语法增加mode_type
字段的展示 -
DistSQL:
ENABLE/DISABLE INSTANCE
语法增加对模式的校验 -
DistSQL:删除读写分离规则时,增加对规则是否正在使用的校验
-
DistSQL:创建读写分离规则时,增加 Resource 重名的校验
-
DistSQL:
SHOW READWRITE_SPLITTING READ RESOURCES
增加延迟时间的展示 -
DistSQL:
DROP RULE
语法支持IF EXISTS
进行预判断 -
DistSQL:优化
ADD/ALTER RESOURCE
连接失败的提示信息 -
分布式治理:增加 schema version 版本号支持批量执行 DistSQL
-
分布式治理:集群模式下持久化元数据优化
-
分布式治理:数据库发现创建 JOB 增加 schemaName 标识
重构
-
内核:重构加解密测试用例
-
内核:重构元数据模型,适配 PostgreSQL database 和 schema 模型
-
弹性伸缩:pipeline 模块移除 HikariCP 依赖
-
分布式治理:重构治理中心存储节点结构
-
分布式治理:重构治理中心 metadata 结构
-
分布式治理:调整数据库发现 MGR 模块为 MySQL 模块
问题修复
-
内核:修复函数无法获取变量的异常
-
内核:修复
InsertValueContext.getValue
转换异常 -
内核:修复 distinct 聚合函数列异常
-
内核:修复带有 schema 的加解密算法改写异常
-
内核:修复读写分离场景下不返回列的异常
-
内核:修复
show tables
语句丢失部分表的异常 -
内核:修复相同结尾的分表路由的异常
-
内核:修复 assignment 短语某些场景下的解析异常
-
内核:修复分片特定配置下的数字转换异常
-
内核:修复单数据源读写分离的元数据异常
-
内核:修复批量执行语句 statement 关闭异常
-
内核:修复某些语句包含 * 时的改写异常
-
内核:修复某些情况下内存模式 ShardingSphere-Proxy 的启动异常
-
接入端:修复 ShardingSphere-Proxy PostgreSQL/openGauss 可能会误替换 SQL 中非参数占位符的字面量
-
接入端:修复 PostgreSQL JDBC Driver 42.3.x 无法连接配置了多个 schema 的 PostgreSQL Proxy 的问题
-
接入端:修复 ShardingSphere-Proxy MySQL timestamp 类型时间精度丢失问题
-
接入端:修复 ShardingSphere-Proxy PostgreSQL 二进制 numeric 编码不正确的问题
-
接入端:修复 ShardingSphere-JDBC 潜在的性能问题及 OOM 风险
-
接入端:修复 ShardingSphere-Proxy MySQL 偶发读取已关闭结果集错误的问题
-
接入端:修复 ShardingSphere-JDBC 没有参数的情况调用 executeBatch 导致空指针的问题
-
弹性伸缩:修复 job 报错之后无法通过 DistSQL 重启
-
DistSQL:修复
CREATE SHARDING TABLE RULE
时 inline 表达式解析错误 -
DistSQL:修复当密码为关键字 password 时,
ADD RESOURCE
解析异常 -
分布式治理:修复由于 ZooKeeper session 超时导致计算节点丢失问题
-
分布式治理:修复治理中心表名大小写问题
-
分布式治理:DistSQL 启用禁用实例刷新内存计算节点状态
-
分布式治理:修复数据库发现无法通过 DistSQL 创建 Rule
🔗 下载链接:
https://shardingsphere.apache.org/document/current/cn/downloads/
🔗 更新日志:
https://github.com/apache/shardingsphere/blob/master/RELEASE-NOTES.md
🔗 项目地址:
https://shardingsphere.apache.org/
社区建设
此次 Apache ShardingSphere 5.1.1 版本的发布,共有 64 位 Contributor 提交了 698 个 PR,感谢社区伙伴们的大力支持。
同时,我们将于 5 月 14 日举办『Apache ShardingSphere 2022 Meetup 北京站』,敬请期待,欢迎大家届时报名参与。🤩🤩

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
AI4DB:openGauss人工智能参数调优之X-Tuner
X-Tuner:参数调优与诊断 一、概述 二、使用准备 三、使用示例 四、获取帮助 五、命令参考 六、常见问题处理 一、概述 增量物化视图可以对物化视图增量刷新,需要用户手动执行语句完成对物化视图在一段时间内的增量数据刷新。与全量创建物化视图的不同在于目前增量物化视图所支持场景较小。目前物化视图创建语句仅支持基表扫描语句或者UNION ALL语句。 二、使用准备 ①前提条件与使用事项 数据库状态正常、客户端能够正常连接、要求数据库内导入数据,以便调优程序可以执行benchmark测试调优效果。 使用本工具需要指定登录到数据库的用户身份,要求该登录到数据库上的用户具有足够的权限,以便可以获得充足的数据库状态信息。 使用登录到数据库宿主机上的Linux用户,需要将$GAUSSHOME/bin添加到PATH环境变量中,即能够直接运行gsql、gs_guc、gs_ctl等数据库运维工具。 Python版本建议为Python3.6+,且运行环境中已经安装相应依赖,并能够正常启动调优程序。您可以独立安装一个Python3.6+的环境,无需设置到全局环境变量中。不建议使用root用户权限安装本工...
- 下一篇
openEuler 22.03 LTS 版本发布,已有 8 家伙伴计划推出商业发行版
欧拉开发者大会2022顺利落下帷幕。这是欧拉正式捐赠之后的首次社区开发者大会,由开放原子基金会和欧拉开源社区共同主办。大会上,欧拉开源社区理事长江大勇做主题演讲,正式发布欧拉首个数字基础设施全场景长周期版本、欧拉生态服务平台和社区贡献看板,并分享了欧拉在技术、生态、商业、开源建设和人才发展方面的最新进展和实践成果。 欧拉开源社区理事长江大勇做主题演讲 2019年,华为把自己在服务器操作系统上积累了10余年的能力开放出来,欧拉操作系统正式开源。2021年11月9日,欧拉开源操作系统项目正式捐赠给开放原子开源基金会,走向产业共建、社区自治。捐赠后的社区,以更加开放的模式汇聚全球创新力量,迎来高速发展。截至目前,欧拉社区已经汇聚了330多家企业伙伴,包括芯片厂商、整机厂商、操作系统厂商、应用软件厂商等,吸引近万名开发者,成立近百个特别兴趣小组,全球下载量超过47万, PR合入超过5.5万,成为活力十足、极具创新力的开源社区。在多样性计算生态支持方面,欧拉已经并即将支持全球全部主流的指令集,成为多样性计算的首选开源操作系统。 技术创新,欧拉首个数字基础设施全场景长周期版本发布 任何一个开源项目...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- 2048小游戏-低调大师作品
- Mario游戏-低调大师作品