Skip to content

Latest commit

 

History

History
214 lines (163 loc) · 8.25 KB

1.10_version_change.md

File metadata and controls

214 lines (163 loc) · 8.25 KB

1.10 版本变更


3.21.06.0 变更内容

1 dble的配置文件版本变更

1.1 bootstrap.cnf

变更项

变更内容

变更版本

向后兼容性

新增

inSubQueryTransformToJoin,in子查询转成join进行查询

3.21.06

不兼容

新增

enableCursor,默认为 false

3.21.06

不兼容

inSubQueryTransformToJoin

原来:如果sql中存在in子查询并且满足可以转join的条件,在dble中会默认将in子查询转成join处理
更改后:在默认情况下,不会将in子查询转成join处理,而是正常按照子查询处理。如果需要将in子查询转成join处理,请在bootstrap.cnf增加该参数(-DinSubQueryTransformToJoin=true)
具体说明请参考:in子查询是否转join的说明

enableCursor:

原来:老版本是只需要 client 显式开启即可使用游标。

现在: 新版本游标功能变成需要client 和 server 同时显式开启才能使用,server 默认不开启。

升级模式:通常不需要这个功能,如果确实需要可以开启。需注意开启会导致所有的prepared statement牺牲一部分性能,用于查询列的数量,详情见 【4.4 prepared statement】.

1.2 sharding.xml

变更项

变更内容

变更版本

向后兼容性

修改

jumpStringHash中的hashSlice默认值。

3.21.06

不兼容

原来:如果不设置hashSlice, 之前版本默认值是(0:-1),不是一个很好的默认值,会丢失一个字符的计算。具体见文档【1.5】中关于 stringhash 的介绍

现在: 3.21.06改为了默认值(0:0)

升级模式:需检查jumpStringHash 的 hashSlice是否有配置,如果原本没有配置需要配置为(0:-1)。

2 集群中存储格式调整

dble在3.21.06.0版本对集群的存储格式进行了调整

原有: 配置中心(zk)存储value的格式不尽相同,且不具备向后兼容性

更改后: 配置中心(zk)存储value的格式均改成了json 格式。并且在在外层包裹了一个统一的格式。 具体格式如下:

{
  "instanceName": "1", //bootstrap.cnf 里面的instanceName
  "apiVersion": 1, //为了兼容性增加的版本字段
  "createdAt": 1628669627058, //创建这个节点的时间戳(毫秒)
  "data": { } //具体数据以 json 格式存储在这里
}

升级方式: 由于两者的元数据互不兼容,升级前需停止旧版本 dble,然后删除配置中心中当前集群的所有元数据,即删除目录"/{rootPath}/{clusterId}",再启动新版本。如需缩短不可用的时间,新版本可以使用不同的clusterId,即启动一个和旧版本隔离的全新集群。

注意:

rootPath和clusterId 的对应值见 cluster.cnf

如果不删除,升级会导致dble 无法启动,并报错 "you may use old incompatible metadata."

降级方式:同升级。

3 日志类管理端命令删除

删除以下管理端命令:

  1. log @@[file=logname limit=numberOfRow key=keyword regex=regex]
  2. show @@syslog limit=?
  3. file @@list
  4. file @@show filename
  5. file @@upload filename content

4 dble_thread_pool表结构调整

  • 原有字段size修改为pool_size:表示当前实际线程池的大小
  • 增加字段core_pool_size:表示设置的核心线程池大小

3.21.02.0 变更内容

1 集群中sequence结构调整

dble在3.21.02.0版本对序列的存储结构进行了调整

原有: 配置中心(zk)存储sequence的结构为key-value形式。key:文件名;value:文件原始内容

更改后: 配置中心(zk)存储sequence的结构为key-value形式。key:文件名;value:文件内容的json形式

升级方式:升级前需删除配置中心的sequence配置(rootPath/clusterId/conf/sequences),存储结构详情见: ZK整体目录结构

2 dble的配置文件验证方式调整

在3.21.02.0版本对dble的xml配置文件验证方式调整

原有:使用dtd文件验证xml的格式,dble中使用DocumentBuilder的方式解析xml文件

更改后:使用xsd文件验证xml的格式,dble中使用jaxb2.0方式解析xml文件

升级方式:升级前需删除原有xml配置文件中的标签:db.xml中的

<!DOCTYPE dble:db SYSTEM "db.dtd">、sharding.xml中的<!DOCTYPE dble:sharding SYSTEM "sharding.dtd">、user.xml中的<!DOCTYPE dble:user SYSTEM "user.dtd">

3 dble的配置文件版本变更

3.1 bootstrap.cnf

变更项

变更内容

变更版本

向后兼容性

升级方式

变更

homePath必须显示声明

3.21.02

兼容

升级前需要将原来在bootstrap.cnf中未声明的homePath,加上-DhomePath=.(路径为当前目录,已声明的无需更改)

3.20.07.0 变更内容

1 配置文件版本变更

dble 在3.20.07.0 版本做了配置的重构。历史变更请参考2.20.04.0的变更

可以通过升级工具dble_update_config将配置从2.20.04.0 升级到3.20.07.0,如果是更早版本,建议先升级到2.20.04.0

升级工具用法:

dble_update_config [-i=read_dir] [-o=write_dir] [-p=rootPath]

read_dir/write_dir: 如果不指定,缺省值为当前目录,建议指定或者提前备份配置 rootPath:如果集群模式是zk, 那么缺省值为 /dble, 如果集群模式是ucore, 缺省值为universe/dble

工具将会读取文件:
myid.properties
wrapper.conf
server.xml
schema.xml
rule.xml
log4j2.xml
cacheservice.properties(option)
sequence_distributed_conf.properties for type3 (option)
sequence_time_conf.properties for type2 (option)

然后写出文件:
cluster.cnf
bootstrap.cnf
user.xml
db.xml
sharding.xml
log4j2.xml
cacheservice.properties(option)

重构后的配置概览图: 配置概览图