Apache ShardingSphere 5.1.1 版本有很多变动,下面我们来一起看一下版本变化:
新特性
内核
- PostgreSQL 支持
alter materialized view
- PostgreSQL 支持
declare
语法 - PostgreSQL 支持
discard
语法 - 通过向解析器中添加模式使 PostgreSQL 支持
$$
标识 - 支持 MySQL 创建表空间语法
Scaling
- 实现停止源写入和恢复源写入
- 支持部分表的扩容
DistSQL
新增新的 DistSQL 语法: SHOW UNUSED RESOURCES
模式
- 向治理中心新增持久化 XA Recovery Id 模式
- 数据库发现新增延迟主从延迟功能
- ShardingSphere-Proxy 支持 savepoint 功能
- 当业务块发生异常时,支持 PostgreSQL 和 openGauss 自动回滚
- 优化 Narayana XA 事务的易用性
- ShardingSphere-JDBC 支持 savepoint
增强
内核
重构内核以提高性能
Proxy
- 减小 ShardingSphere-Proxy 的 Docker 镜像体积
- ShardingSphere-Proxy 可支持 set names 语句
- ShardingSphere-Proxy MySQL 支持批量语句
Scaling
- 弹性伸缩:在 ShardingSphere-Proxy 集群中只有一个 Proxy 节点可以做数据一致性检查
- 弹性伸缩:优化 input 和 output 配置里面的字段类型从 int 替换为 Integer
- 优化 MySQL 校验和 SQL
- 优化进度删除和进度检查
- 当目标表已经具有与源表相同的数据时,FinishCheckJob 无法完成检测,改进数据一致性检查
- 如果存在不符合迁移条件的表,尽快中断缩放作业
- PipelineAPIFactory 创建 GovernanceRepositoryAPI 的时候复用 ClusterPersistRepository
- 更新 jobId 生成算法;使其支持幂等性
DistSQL
- CREATE/ALTER ENCRYPT RULE语法支持配置数据类型和长度
- 统一 SHOW ALL VARIABLES与 SHOW VARIABLE 语法的显示结果
- 当使用 DROP BINDING TABLE RULES 语法消除绑定顺序对删除结果的影响
- 将 mode_type 字段增加到SHOW INSTANCE LIST 语法
- ENABLE/DISABLE INSTANCE 语法增加对模式的校验
- 删除读写分离规则时,增加对规则是否正在使用的校验
- 创建读写分离规则时,增加 Resource 重名的校验
- 将 delay_time 添加到 SHOW READWRITE_SPLITTING READ RESOURCES 的结果中
- DROP RULE 语法支持预判断 IF EXISTS
- 优化 ADD/ALTER RESOURCE 连接失败的提示信息
模式
- 增加schema版本号,支持批量执行 DistSQL
- 集群模式下持久化元数据优化
- 数据库发现创建 JOB 增加 schemaName 标识
重构
内核
- 重构加密测试用例
- 重构元数据以支持 PostgreSQL database 和 schema 模型
Scaling
pipeline 模块移除 HikariCP 依赖
模式
- 重构治理中心存储节点结构
- 重构治理中心 metadata 结构
- 将数据库发现MGR模块调整为MySQL模块
Bug 修复
内核
- 修复函数无法获取变量的异常
- 修复 InsertValueContext.getValue 强制转换异常
- 修复 distinct 聚合函数列异常
- 修复读写分离场景 GeneratedKeysResultSet 不返回导致下不返回列的异常
- 修复 show tables 语句丢失部分单表的异常
- 修复 ModShardingAlgorithm 存在相同后缀表时路由结果异常
- 修复 assignment 短语某些场景下的解析异常
- 修复分片算法模式下的数据类型转换错误
- 修复单数据源读写分离的 metadata 异常
- 修复语句关闭异常 BatchPreparedStatementExecutor
- 修复某些语句包含 * 时的改写异常
- 修复字面量可能在 PostgreSQL/openGauss 协议中被错误替换的异常
Proxy
- 修复 PostgreSQL JDBC Driver 42.3.x 无法连接多个 ShardingSphere-Proxy PostgreSQL 的异常
- 修复 ShardingSphere-Proxy MySQL timestamp 类型时间精度不准确的异常
- 修复 ShardingSphere-Proxy PostgreSQL 二进制 numeric 编码错误的问题
- 修复 ShardingSphere-JDBC 中潜在的性能问题和 OOM 风险
- 修复在 ShardingSphere-Proxy MySQL 中关闭后偶尔发生读取关闭数据集问题
- 修复 ShardingSphere-JDBC 没有参数的情况调用 executeBatch 导致空指针的问题
Scaling
修复 job 报错之后无法通过 DistSQL 重启,除非重新启动
DistSQL
- 修复 CREATE SHARDING TABLE RULE 时 inline 表达式解析错误
- 修复password 在 ADD RESOURCE 语句中密码为关键字时的解析异常
模式
- 修复了由于 ZooKeeper 会话超时导致的计算节点丢失
- 修复治理中心表名大小写问题
- 修复数据库发现无法通过 DistSQL 创建 rule 的问题