Skip to content

Releases: baidu/BaikalDB

BaikalDB v3.0.0

19 Feb 06:34
c04e446
Compare
Choose a tag to compare

Notice:

  • 滚动升级顺序:BaikalMeta=>BaikalStore=>BaikalDB(本次升级需要严格按照这个顺序,由于修改较大,建议线下验证兼容性)
  • 回滚步骤反过来:BaikalDB=>BaikalStore=>BaikalMeta
  • 如没特殊说明,后续升级步骤都应该按上述顺序进行
  • 由于大部分代码库都不支持bazel,后续编译将只支持cmake

New Features:

  • 增加了arrow acero执行引擎,能够大幅提升大数据聚合/join的性能,db需要打开开关-use_arrow_vector=true
  • 支持向量索引vector_index,采用faiss+OpenBLAS做相似度检索,有能力同学可以把OpenBLAS可以换成MKL获得更好性能
  • 支持冷数据使用分布式文件系统(目前适配内部文件系统,外部需要实现include/engine/external_filesystem.h内的接口)
  • 重构range分区,支持动态时间分区
  • float point支持保留几位小数,例如double(10,2)保留2位小数
  • 支持单表可以发给多个binlog表,可以支持不同业务binlog保序
  • 支持注释不发binlog:/{"no_binlog":true}/
  • ddl支持store粒度的限制并发
  • 支持merge into语法(类似replace into语法,只是相同主键会合并而不是覆盖),类似于olap系统的sum聚合模型
  • merge into的表支持rollup索引,可以按照维度进一步聚合
  • 向量索引支持带前缀索引(必须和之间前缀一致),可以保存私域向量,向量搜索只在固定前缀里搜索(类似自动的不限制个数的partition功能)例如:primary(prefix, id), vector index(prefix, vec);使用的时候where prefix = xx and match(vector_field) against ('0.1,0.2,0.3...' in vector mode)
  • alter table modify column 无default时会清理默认值
  • 拒绝修改Schema Conf不为空的表的resource tag,除非指定force强制执行
  • 支持视图,支持with语句
  • 支持dblink功能(link后不同meta的表可以互相访问),db需要打开开关enable_dblink=true。例子:CREATE TABLE tbl1 (
    ) ENGINE=DBLink COMMENT='{"dblink_info": {"type":"LT_BAIKALDB","meta_name":"meta_addr","namespace_name":"ns","database_name":"db1","table_name":"tbl1"}}'
  • 支持multi distinct;例如 select count(distinct a), count(distinct b) from tb group by xx
  • 建表列名检查,不支持空格等特殊字符
  • 定期同步user权限
  • 日期支持CURDATE() - INTERVAL 7 DAY
  • mysql兼容性,建表不指定not null,默认是null
  • 当select字段只包括min或max函数时,转换为order by xx limit 1。
  • sort算子存在limit时,使用topn
  • agg/distinct没有聚合函数时,支持limit
  • db支持动态修改user quota。
  • 无结果时,agg返回0值
  • json类型和bit类型支持
  • like前缀匹配转range
  • 支持distinct count(*)
  • sort index使用primary字段
  • 多表join支持reorder
  • 子查询支持force index
  • update语句支持保持ttl
  • 兼容性:support datetime(n),支持配置精度,默认0
  • 兼容性:新增函数find_in_set
  • 兼容性:兼容mysql索引语法
  • 兼容性:补齐时间类函数
  • 兼容性:补齐字符类函数
  • 兼容性:兼容mysql建表语法
  • 功能性: 新增FLAGS_max_select_region_count,用于控制手写慢sql抢占线上sql资源
  • 兼容性:支持change column语法
  • 功能性:默认字符集设为utf8
  • 兼容性:alter table时允许添加多列
  • 兼容性:index.short_name展示时保留大小写
  • 兼容性:支持drop index name on table语法
  • 兼容性:新增SQL show tables, show columns
  • 兼容性:set sql_mode="compatible"开启兼容模式,show create table会去掉特殊语法,完全兼容mysql
  • 兼容性:show tables命令information_schema库转小写
  • 功能性:slow query log 新增 sign, server_addr and conn_id字段
  • 功能性:当meta复制组更新时,store自动更新meta list,用于集群迁移时,可避免store重启
  • 功能性:delete/update语句支持 OrderBy和Limit 用法
  • case when语句agg_sql固定长度
  • 增加bvar region_error_count
  • print_query_time and agg sql时增加指标disk read size
  • drop index忽略索引名称大小写
  • 允许单副本分裂
  • query cache功能,/*{"query_cache":10000}*/ 开启,单位ms
  • replica_num=1时也允许分裂
  • 加权限后10s后会自动拉取,这样之前的连接有都有最新权限
  • cmake修改依赖 c++17, rocksdb7.10.2, lz4, zstd, liburing,arrow16.1.0(内部修改了支持binary_view和全功能swissjoin)
  • 支持和mysql一样的权限校验,详见pr #234
  • 支持''与"",字符串转义
  • select * 时,忽略新增字段导致的记录反解析错误
  • 支持select ... for update语义
  • 支持_UTF8MB4 STRING_LIT语法
  • 支持子查询多个括号的解析,((subselect))
  • split add flags min slow down cost and max slow down cost

Bug Fixes:

  • 修复binlog table加列core
  • 修复information_schema join 出core
  • 修复Prepare模式不下发binlog
  • fix update set null
  • 向量索引内存泄露fix
  • 倒排报错修复
  • fix row expr in (null)
  • fix check_and_update_incremental
  • union子查询不支持fullexport
  • fix drop region 导致 meta ddl core
  • join reorder fix
  • range分区预分裂问题fix
  • group_concat core fix
  • 修复like prefix
  • 表达式分区赋值fix
  • 修复union问题
  • 修复子查询类型推导
  • derived_table独立ctx,和外层名称不冲突
  • 子查询类型推导bugfix && 子查询全局索引下推bugfix
  • fix heart beat core
  • 限制ttl表不支持add fulltext
  • 全局索引partition_regions fix
  • 修复prepare默认值问题
  • 修复bugs:(a,b)>(0,0) and b in (1,2,3)
  • fix insert select core
  • prepare模式QueryContext及RuntimeStatus对象部分变量需重置,比如 is_canel, 统计信息。debug_region_id, execute_global_flow等。
  • update_manager_node全局索引更新时,不返回last_insert_id修复。
  • union类型统计到select_time_cost
  • prepare模式设置dml txt。只有非select且prepared_table_id != -1才需要设置
  • index_selector中计算分区时,只有等值类型才能计算。(前缀like计算会出错)
  • index_selector中生产field_range_map时,每次需要清空FieldRange对象。SQL where a like 'xx_%' and a = '111;
  • SQL: 修复建表语句 commet = '1'出core的bug
  • SQL:show full columns与输出MySQL保持一致
  • binlog: 更新checkpoint的bug
  • sort_limit_by_range bug
  • cstore + ttl表,update字段默认值时不生效的bug
  • show命令result包返回失败会卡主状态机的bug
  • 内存安全:exec node delete after parent clear children
  • enable profilers
  • string type return field length 255
  • not in (null)
  • 开启binglog时,update cstore需要返回全部字段
  • fix: kill 不存在的id时报错
  • select use peer index 不生效问题
  • proto文件变更时,cmake workflow check失败的问题
  • 修复leader为空时,init channel failed的bug
  • 修复(a,b) in (结果为空的子查询)时,导致扫全表的bug
  • 修复了Where (a,b) in (1,2) and (b, c) in (3,4)时,字段b计算field_range_map时的bug
  • Innodb to InnoDB,与mysql兼容

Performance Improvements:

  • 增加了arrow acero执行引擎,能够大幅提升大数据聚合/join的性能,db需要打开开关-use_arrow_vector=true
  • 采用双buf优化meta心跳性能,单meta可以支持更多db和store
  • add_partition时init regions异步执行
  • 支持union和子查询的谓词下推
  • 调整不同range type的索引选择权重,EQ > IN > RANGE
  • db侧新增FLAGS_sql_exec_timeout,控制db请求store最大用时
  • 优化sql 注释解析性能,仅存在注释时定义re2
  • UserPrivilege获取优化
  • 支持执行计划缓存,普通select可以类似prepare
  • 满足parition的in条件支持按照partition拆分,降低seek量
  • 增加--rocks_enable_blob_files=true,启用blobdb,以支持kv分离,对大Value(--rocks_min_blob_size配置),性能有提升

BaikalDB v2.2.1

14 Sep 07:00
69e354f
Compare
Choose a tag to compare

修复like prefix
修复tso

BaikalDB v2.2.0

24 Jul 08:48
84ef9c2
Compare
Choose a tag to compare

Notice:

滚动升级顺序:BaikalMeta=>BaikalStore=>BaikalDB(本次升级需要严格按照这个顺序,否则会出现兼容性问题)
回滚步骤反过来:BaikalDB=>BaikalStore=>BaikalMeta
如没特殊说明,后续升级步骤都应该按上述顺序进行

New Features:

  • 内部现在适配的是gcc12,rocksdb 7.10.2(c++17),protobuf_3-18-0-1,本次开源版本依赖未变,有能力同学可以适配下bazel依赖
  • feat: update braft from v1.1.1 to v1.1.2
  • 增加store单sign读请求的并发控制,去除new sign识别;两级并发参数,服务器配置高可以调大:sign_concurrency=8,global_select_concurrency=24,开关:open_sign_concurrency=true
  • 支持单表多集群(resource_tag)概念,多副本可以在不同集群,例如:"dists": [ { "resource_tag":"a1","logical_room":"x", "count":2}, { "resource_tag":"a1","logical_room":"y", "count":1}, { "resource_tag":"a2","logical_room":"x", "count":1}, { "resource_tag":"a3","logical_room":"y", "count":1}]
  • baikaldb支持访问指定的resource_tag,-fetcher_resource_tag=a1
  • baikaldb支持follower read读取最新数据,配置-use_read_index=true
  • rocksdb支持参数:rocks_use_sst_partitioner_fixed_prefix,rocks_use_ribbon_filter,rocks_use_hyper_clock_cache(rocksdb 7.10.2才能开)
  • like表达式支持gbk和utf8(参考了tikv),解决gbk部分中文匹配错误问题,但是新实现性能比re2差
  • 完善sql签名降级功能
  • 快速导入功能优化
  • full_export支持inner join limit下推多轮交互
  • 支持copy_db复制整个db表结构,用于测试场景
  • 索引选择预处理流程中如果遇到pk或uniquekey,并且条件为eq或in时直接选择
  • column ddl复制列,走ddl流程:alter table t1 modify column set column2=column1 where column1!=column2;
  • 优化分裂过程稳定性
  • fulltext/hll多处优化
  • 支持注释调整执行并发,防止脚本类大sql打挂集群,/*{"single_store_concurrency":1}*/
  • mysql协议增加keepalive,降低客户端挂掉后事务残留时间
  • 支持mysql建表语句,改成同步建表,建表后即可查询
  • fulltext支持utf8编码
  • 支持修改表的charset,ALTER TABLE tb DEFAULT CHARSET= gbk;
  • 支持hash partition自定义表达式,partition功能达到可用状态,举例:PARTITION BY HASH (key & 0xABB % 16) PARTITIONS 16
  • 分裂优化,分裂耗时更短
  • ddl流程优化
  • 支持\0转义
  • 支持按user设置不同的锁超时时间
  • store和db均支持sign黑名单拒绝:handle schema_conf {table_name} add_blacklist {sign}
  • 迁移限速判断l0 sst数量,降低stall概率
  • not null无default值时,插入null兼容mysql非严格模式,例如int类型会写入0,string类型写入空串
  • binlog表增加字段binlog_row_cnt bigint(20) NOT NULL DEFAULT '1'
  • binlog增加sql等信息,用来支持sql闪回
  • 通过表名鉴权,防止新表rename后无权限问题
  • table可以分发给多个binlog表(可以不同partition)
  • 增加abs函数对bigint的支持
  • 支持modify columns修改默认值时, 原类型等于目的类型
  • Update brpc url from incubator-brpc to brpc.
  • 新增CAST '(' Expr AS VARCHAR ')' 与CAST '(' Expr AS DECIMAL ')'函数
  • prepare模式计算sign
  • print_query_time增加ip端口
  • sign_forceindex
  • add function json_extract
  • suport '' as ' and "" as "
  • add function json_extract
  • support start transaction ISOLATION LEVEL
  • support CREATE UNIQUE INDEX
  • 兼容性提升
  • feat: limit pushdown when multi-ranges in scan_node
  • feat: group_concat support distinct, orderby, separator

Bug Fixes:

  • binlog修复ts编码问题,对外订阅逻辑兼容,1h后会删除旧的cf,因此确保在老的binlog数据不再使用的时候上线binlog
  • ttl decode bugfix
  • 修复fetcher store出现old version可能丢数据问题
  • 修复延时删除误删region
  • 局部索引fix txn write skew
  • agg空数据修复
  • 修复多项事务bug,完善幂等处理,事务更稳定
  • 修复a join b using(id)语法
  • 内存限制bugfix
  • 时间类型,时间函数等修复和兼容mysql
  • insert ignore LOCK bugfix
  • subquery txn_id bugfix
  • substring_index空串死循环修复
  • 修复update set a=a+1并发问题
  • double to string增加精度
  • insert select 修复时间类型
  • fix binlog ttl功能
  • merge region是否有数据double check
  • 修复重启后产生大量bthread
  • 修复数字like prefix不用索引
  • join适配null相关函数
  • 修复倒排删特殊列core
  • 修复sort_limit_by_range问题
  • read index广播采用log index
  • update set null时binlog发送默认值
  • 修复full export+partition表问题
  • 修复ddl+分裂时可能丢index数据问题
  • 修复update别名问题
  • fix: update table alias logical error
  • fix: read and write skew for global index
  • COLUMNS表字段默认值区分空字符串和NULL
  • 解决date,datetime,time,timestamp类型字段in子查询时,表达式为空问题
  • filter_node debug log
  • check for TIMESTAMP and DATETIME columns, you can specify CURRENT_TIMESTAMP as the default
  • add column comptatible with collate
  • db_version
  • std::vector push_back coredump when double capacity
  • SAFE_DELETE for expr_node& exec_node
  • fix: subquery txn_id

Performance Improvements:

  • binlog回退进度点性能优化
  • 局部索引+binlog优化交互,降低延迟
  • 支持multiget,默认打开:-scan_use_multi_get=true
  • baikaldb索引计算优化
  • baikalstore减少数据复制
  • binlog支持multiget
  • join性能优化,降低planrouter的开销
  • ttl cache优化
  • or,and支持多叉树
  • a = 1or a= 2改写成a in (1,2);(a=1 and b=1) or (a=2 and b=2)改成成(a,b) in ((1,1),(2,2)),满足后续索引选择需求
  • 优化mem check性能
  • 优化baikaldb内部索引选择性能
  • 倒排index里不使用pb
  • partition路由优化
  • 倒排or堆排序
  • partition多项性能优化
  • 全局索引先limit后回表优化
  • 索引选择和索引range生成拆分,减少生成range开销

BaikalDB v2.1.1

16 May 12:16
53e85d2
Compare
Choose a tag to compare

修复老版本编译器编译问题,功能与v2.1.0一致

BaikalDB v2.1.0

05 May 10:05
3759355
Compare
Choose a tag to compare

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函数不生效问题

Performance Improvements:

  • region、qos采用双buf降低锁冲突
  • join on驱动表扫描出的等值value进行去重作为被驱动表的条件,降低数据量
  • userinfo使用双buf提升性能
  • qos优化
  • meta cf不使用ingest
  • 优化tdigest存储
  • CompactionFilter只做后2层
  • region split优化降低禁写时间
  • meta性能优化和锁优化
  • limit下推 @wy1433 #174
  • 注释解析性能优化
  • MemRowDescriptor缓存降低多列情况下开销
  • 局部索引内存优化
  • 索引key解析优化
  • db到store改用异步请求,降低高并发下bthread数量

BaikalDB v2.0.1

30 Jul 08:42
fd6acde
Compare
Choose a tag to compare

Bug Fixes:

修复snapshot发送时遇到重试可能丢数据的问题
install snapshot时做校验

New Features:

binlog元数据表支持ttl
兼容.netcore对string与binary的处理差异,支持_binary EXPR用法及blob类型返回,返回编码field_charsetnr_set_by_client=true可以设置为client编码,否则是0
增加函数last_insert_id(expr),可以在session级别保存表达式执行结果
支持库名,表名,别名,大小写不敏感用法,schema_ignore_case=true开启
支持多表查询时,不同表字段相同,查询时没有指定表名的歧义消除功能,disambiguate_select_name=true开启
peer_load_balance增加balance_add_peer_num参数,默认每张表迁移10个,可不重启meta动态修改以调整迁移速度
leader_load_balance放宽transfer leader的候选peer的选择限制

BaikalDB v2.0.0

20 May 12:41
08c4430
Compare
Choose a tag to compare

Notice:

滚动升级顺序:BaikalMeta=>BaikalStore=>BaikalDB
如没特殊说明,后续升级步骤都应该按上述顺序进行

New Features:

  • 支持cmake编译
  • 增加bvar监控
  • 修复部分统计信息问题
  • 支持b'11'、 0b11、 x'AA'、 0xAA 字面
  • 支持子查询
  • 支持selfjoin:table t1 join table t2
  • 支持binlog
  • 增加全局索引的online ddl操作,alter table xxx add index global idx(filed);
  • 代价相关会结合一些规则判断,增加索引选择正确率
  • 暂时使用直方图+内部的distinct count做等值判断,cmskectch在大表情况下准确性较低
  • 支持information_schema流程 ,需要添加新的information_schema的表可以参考src/common/information_schema.cpp
  • 统计信息和规则选择索引部分做了修改,选择更准确些
  • 增加虚拟索引:alter table id_name_c add VIRTUAL index idx_name (name); 查看受影响的sql:show virtual index;用来新建索引前评估影响
  • using docker-compose to build a minimal three node cluster
  • 增加roaringbitmap,可以用于精确统计一些uv,用法与hll类似
  • 增加TDIGEST用来做分位值的估算
  • 增加db探测store的功能,在单个store假死的情况下可以快速恢复系统,集群更稳定
  • addpeer前会检查rocksdb是否stalling,提前拒绝addpeer,减少禁写风险
  • 增加dataindex,在install snapshot时会判断follower的数据是否已经是新的
  • 默认从snappy改成增加lz4压缩
  • 最底层增加zstd压缩,通过-enable_bottommost_compression开启
  • add funcs: date_add, date_sub, utc_timestamp, last_insert_id
  • store增加令牌桶流控(qos),对每类sql做并发限制,降低突发流量对正常sql的影响,默认不开启
  • 对每个请求做内存限制,通过db_sql_memory_bytes_limit(8G)和store_sql_memory_bytes_limit(16G)控制
  • 定期调用tcmalloc接口回收内存src/common/memory_profile.cpp
  • 支持loaddata语句,load的文件目前只能放在server端(相对于baikaldb的路径)
  • 一个表多机房时可以设置一个主机房(main_logical_room),leader总是在主机房内
  • 增加索引屏蔽概念,已屏蔽的索引不会被选择,在线索引操作调整:
    • drop index设置屏蔽状态,2天(table_tombstone_gc_time_s)后自动发起删除流程;目的是删错索引可以快速restore恢复,快速止损
    • add index流程走完后,索引为屏蔽状态,需要二次确认restore;防止流程走完后,索引影响老业务,并且无人关注到
    • 屏蔽状态的索引转为正常索引:alter table xxx restore index idx

Bug Fixes:

  • 修复meta双buf问题
  • 修复多次删除创建同名后restore恢复表不一致问题
  • 单语句事务可能会导致raft卡住的bug修复
  • 修复之前GetApproximateSizes不准的bug
  • 修复一些可能的内存泄露问题
  • 修复只读事务bug,优化部分流程
  • prepare insert current time default value
  • fix count(*) return NULL expected 0 when filter expr is always false
  • ignore non-json format comment for sql string
  • update last_insert_id when client set the value

Performance Improvements:

  • 主表、索引覆盖、全局索引seek优化,去除table_record到mem_row的转化
  • 通过plan复用优化select prepare stmt性能
  • rocksdb事务锁改成bthread锁;不阻塞pthread
  • 提升cstore扫描性能
  • 降低qos,memlimit的开销
  • 增加了推荐的conf配置

BaikalDB v1.1.3

10 Jul 07:03
af87665
Compare
Choose a tag to compare

New Features

  • 增加rocks_use_partitioned_index_filters配置决定是否使用Partitioned Index Filters,默认为false;开启后需要通过rocks_block_cache_size_mb配置内存占用,同时rocks_max_open_files失效,永远打开全部sst
  • 索引范围可以结合IN和between
  • 采用re2代替boost.regex
  • DeleteRange前先条用DeleteFilesInRange,可以先删除完全覆盖的文件,降低compaction压力

Bug Fixes

  • 修复扫描cstore解析问题
  • 修复部分场景primary解析问题

BaikalDB v1.1.2

03 Jun 06:41
658ff42
Compare
Choose a tag to compare

Notice:

从v1.0.x升级到v1.1.x版本,必须先更新兼容版本v1.1.0,否则可能出现数据丢失情况
v1.1.1 is abandoned

更新步骤:

  1. 滚动更新store到v1.1.0
  2. 滚动更新db到v1.1.0
  3. 滚动更新store到v1.1.2
  4. 滚动更新db到v1.1.2
    回滚步骤相反,只能回滚到v1.0.2

v1.1.2版本开始,事务参考Percolator,继续依赖rocksdb的悲观事务,dml通过raft发送给follower的方式从之前的prepare打包发送改为单dml发送

Feature:

  • 增加了统计信息功能
  • 增加利用统计信息计算代价选择索引功能
  • sst备份增加stream接口,减少内存占用,解决大region备份失败问题
  • 支持部分时间函数,支持常用字符串函数
  • print_time_us适用于baikaldb的notice日志打印,需要全部打印请配置为0
  • alias别名兼容mysql,where条件不再支持alias
  • brpc更新到0.9.7
  • braft跟新到v1.1.1
  • rocksdb更新到6.8.1
  • rocksdb使用format_version=4,因此升级后只能回滚到v1.0.2(rocksdb 5.12.4不支持)
  • 使用Partitioned Index Filters,rocksdb主要内存占用可以通过rocks_block_cache_size_mb配置,默认8G;线上使用建议调大这个参数
  • 倒排拉链支持使用arrow存储

Bug Fix:

  • 修复sst备份接口不释放snapshot导致内存无法释放问题
  • 修复多次删除创建同名后restore恢复表不一致问题

Performance:

  • 主表、索引覆盖、全局索引seek优化,去除table_record到mem_row的转化
  • 通过plan复用优化select prepare stmt性能

BaikalDB v1.0.2

01 Jun 08:22
c3cfc85
Compare
Choose a tag to compare

rocksdb升级到6.8.1;用于v1.1.x的回滚