Apache ShardingSphere 5.1.1 正式发布

829

Apache ShardingSphere 5.1.1 版本有很多变动,下面我们来一起看一下版本变化:

新特性

内核

  1. PostgreSQL 支持 alter materialized view
  2. PostgreSQL 支持 declare 语法
  3. PostgreSQL 支持 discard 语法
  4. 通过向解析器中添加模式使 PostgreSQL 支持 $$ 标识
  5. 支持 MySQL 创建表空间语法

Scaling

  1. 实现停止源写入和恢复源写入
  2. 支持部分表的扩容

DistSQL

新增新的 DistSQL 语法: SHOW UNUSED RESOURCES

模式

  1. 向治理中心新增持久化 XA Recovery Id 模式
  2. 数据库发现新增延迟主从延迟功能
  3. ShardingSphere-Proxy 支持 savepoint 功能
  4. 当业务块发生异常时,支持 PostgreSQL 和 openGauss 自动回滚
  5. 优化 Narayana XA 事务的易用性
  6. ShardingSphere-JDBC 支持 savepoint

增强

内核

重构内核以提高性能

Proxy

  1. 减小 ShardingSphere-Proxy 的 Docker 镜像体积
  2. ShardingSphere-Proxy 可支持 set names 语句
  3. ShardingSphere-Proxy MySQL 支持批量语句

Scaling

  1. 弹性伸缩:在 ShardingSphere-Proxy 集群中只有一个 Proxy 节点可以做数据一致性检查
  2. 弹性伸缩:优化 input 和 output 配置里面的字段类型从 int 替换为 Integer
  3. 优化 MySQL 校验和 SQL
  4. 优化进度删除和进度检查
  5. 当目标表已经具有与源表相同的数据时,FinishCheckJob 无法完成检测,改进数据一致性检查
  6. 如果存在不符合迁移条件的表,尽快中断缩放作业
  7. PipelineAPIFactory 创建 GovernanceRepositoryAPI 的时候复用 ClusterPersistRepository
  8. 更新 jobId 生成算法;使其支持幂等性

DistSQL

  1. CREATE/ALTER ENCRYPT RULE语法支持配置数据类型和长度
  2. 统一 SHOW ALL VARIABLES与 SHOW VARIABLE 语法的显示结果
  3. 当使用 DROP BINDING TABLE RULES 语法消除绑定顺序对删除结果的影响
  4.  将 mode_type 字段增加到SHOW INSTANCE LIST 语法
  5. ENABLE/DISABLE INSTANCE 语法增加对模式的校验
  6. 删除读写分离规则时,增加对规则是否正在使用的校验
  7. 创建读写分离规则时,增加 Resource 重名的校验
  8. 将 delay_time 添加到 SHOW READWRITE_SPLITTING READ RESOURCES 的结果中
  9. DROP RULE 语法支持预判断 IF EXISTS
  10. 优化 ADD/ALTER RESOURCE 连接失败的提示信息

模式

  1. 增加schema版本号,支持批量执行 DistSQL
  2. 集群模式下持久化元数据优化
  3. 数据库发现创建 JOB 增加 schemaName 标识

重构

内核

  1. 重构加密测试用例
  2. 重构元数据以支持 PostgreSQL database 和 schema 模型

Scaling

pipeline 模块移除 HikariCP 依赖

模式

  1. 重构治理中心存储节点结构
  2. 重构治理中心 metadata 结构
  3. 将数据库发现MGR模块调整为MySQL模块

Bug 修复

内核

  1. 修复函数无法获取变量的异常
  2. 修复 InsertValueContext.getValue 强制转换异常
  3. 修复 distinct 聚合函数列异常
  4. 修复读写分离场景 GeneratedKeysResultSet 不返回导致下不返回列的异常
  5. 修复 show tables 语句丢失部分单表的异常
  6. 修复 ModShardingAlgorithm 存在相同后缀表时路由结果异常
  7. 修复 assignment 短语某些场景下的解析异常
  8. 修复分片算法模式下的数据类型转换错误
  9. 修复单数据源读写分离的 metadata 异常
  10. 修复语句关闭异常 BatchPreparedStatementExecutor
  11. 修复某些语句包含 * 时的改写异常
  12. 修复字面量可能在 PostgreSQL/openGauss 协议中被错误替换的异常

Proxy

  1. 修复 PostgreSQL JDBC Driver 42.3.x 无法连接多个 ShardingSphere-Proxy PostgreSQL 的异常
  2. 修复 ShardingSphere-Proxy MySQL timestamp 类型时间精度不准确的异常
  3. 修复 ShardingSphere-Proxy PostgreSQL 二进制 numeric 编码错误的问题
  4. 修复 ShardingSphere-JDBC 中潜在的性能问题和 OOM 风险
  5. 修复在 ShardingSphere-Proxy MySQL 中关闭后偶尔发生读取关闭数据集问题
  6. 修复 ShardingSphere-JDBC 没有参数的情况调用 executeBatch 导致空指针的问题

Scaling

修复 job 报错之后无法通过 DistSQL 重启,除非重新启动

DistSQL

  1. 修复 CREATE SHARDING TABLE RULE 时 inline 表达式解析错误
  2. 修复password 在 ADD RESOURCE 语句中密码为关键字时的解析异常

模式

  1. 修复了由于 ZooKeeper 会话超时导致的计算节点丢失
  2. 修复治理中心表名大小写问题
  3. 修复数据库发现无法通过 DistSQL 创建 rule 的问题