BaikalDB v2.1.0
Notice:
滚动升级顺序:BaikalMeta=>BaikalStore=>BaikalDB(本次升级需要严格按照这个顺序,否则会出现兼容性问题)
回滚步骤反过来:BaikalDB=>BaikalStore=>BaikalMeta
如没特殊说明,后续升级步骤都应该按上述顺序进行
New Features:
- rocksdb升级到6.26.0(protobuf内部是V3.11.2比较稳定,欢迎有能力同学升级下,可以获得更好的性能)
- comb multi in predicate by @wy1433 #160
- local index ddl 与 gobal index ddl流程统一
- 新增handle/show sql代替脚本
- 优化旁路探测问题
- where条件中datetime类似与数字20201212比较兼容mysql
- 支持主机房概念,可以设置主机房,让leader在主机房选出
- 虚拟索引过meta收集任意sql的影响面
- 支持substring_index
- 支持按照网段进行负载均衡
- region split主动add peer,防止单副本运行
- partition表兼容mysql语法
- 支持online TTL
- delete、update支持子查询
- 支持regexp
- drop index force可以直接走删除流程
- 新增函数: timestamp, lpad, rpad, time_format, convert_tz, isnull, database, cast, convert, default @wy1433
- 新增系统表:ROUTINES,KEY_COLUMN_USAGE , REFERENTIAL_CONSTRAINTS @wy1433
- 兼容jdbc8.0驱动 @wy1433
- 支持表注释,并支持alter table修改表注释,及comment里面内容 @wy1433
- drop index忽略索引名称大小写 @wy1433
- 支持sql单行注释写法 @wy1433
- 增加manual_split_region可以手工分裂
- 增加内存限制功能
- 建表使用unique index默认改成global的,可以通过unique index local来指定成local的,可以通过-unique_index_default_global=false改成默认是local的
- 建表使用普通索引index默认还是local的,可以通过index global指定成global的,可以通过-normal_index_default_global=true改成默认是global的
- 通过-open_nonboolean_sql_forbid=true可以禁止非bool表达式参与and/or计算,默认false
- 通过-open_non_where_sql_forbid=true可以禁止没有where条件的update/delete,默认false
- 通过-limit_unappropriate_sql=true可以限制手工sql(每个db执行次数少于3次)每个store并发到1,防止store被打挂,默认false
- 支持ingest sst方式的快速导入功能(暂未适配开源编译,将在后续开放)
Bug Fixes:
- 修复子查询中常量不能替换’?‘的bug
- 修复insert select未更新自增主键
- 修复tdigest agg问题
- 修复各种事务问题
- 修复1pc和2pc混用卡住问题
- 修复update set now()时3副本不一致问题,rand()函数不是const
- 修复全局索引并发写primary和secodary的问题
- 修复baikaldb死循环,出core问题
- 修复子查询join全局索引表出core
- 修复fake binlog 不反查primary region
- add peer过程中正好触发延时删除ingest失败
- 修复包含slot的like predict bug
- 修复current_timestamp问题
- 修复标量子查询core和多列问题
- 修复全局索引+row_ttl
- 修复order by超过1个表达式计算问题
- write binlog错误码修复
- 子查询kill问题修复
- datediff 问题修复
- 修复match against类型推导
- 修复全局索引+insert duplicate中values函数不生效问题