本文介绍云数据库ClickHouse24.2.16476企业发布的功能详情。
新特性
为splitBlockIntoParts添加日志。
Keeper新增性能分析助手。
在模式推断缓存中添加缺失的设置。
性能优化
降低Serverless对资源调整的响应间隔,以避免弹性升降不及时导致查询被中断。
调整以下参数,用以确保在一些场景下使用垂直算法Merge,从而提升Merge性能。
vertical_merge_algorithm_min_rows_to_activate=0 vertical_merge_algorithm_min_bytes_to_activate=134217728 vertical_merge_algorithm_min_columns_to_activate=0Replicated数据库引擎下,只允许创建数据不落本地磁盘的表引擎,用以避免使用错误而导致的各种问题。
调整Keeper参数
digest_enabled=1,开启实时一致性校验。调整Keeper参数
async_replication=1,在保证读写一致性的情况下,提升多个节点间数据复制的性能。优化了OSS的QPS和带宽,使得在同样的业务负载下减少了OSS的QPS和带宽。
bug修复
调整Keeper参数
check_not_exists=1和create_if_not_exists=1,以避免ClickHouse-Server的一些调用下产生非预期报错。修复了部分由于内存统计不准确而导致SQL提前结束的问题。
修复
S3::ClientCache中的数据竞争问题。更多详情,请参见Fix data race in S3::ClientCache。修复极少数情况下因为非预期的projections导致part设置为broken的情况。
在MergeJoin中添加缺失的稀疏删除操作,用以修复数据Join时的一个bug。更多详情,请参见Add missing `sparse` removal in MergeJoin。
支持取消PostgreSQL表的查询。更多详情,请参见PostgreSQL source support cancel query by kitaisreal · Pull Request。
修复
unbin的缓冲区溢出问题。修复
SumIfToCountIfVisitor和有符号整数中的问题。修复在约束中使用带IN的子查询时出现的未就绪集错误。更多详情,请参见Add missing settings in schema inference cache。
修复当存在条件
IS NULL时的不正确的优化。更多详情,请参见Better handling of join conditions involving IS NULL checks。在DDLLoadingDependencyVisitor中忽略IN的子查询。
修复收到ZooKeeper的硬件错误后,结束会话的问题。更多详情,请参见Finalize session on hardware error from ZooKeeper。
正确打印Keeper中长时间处理的请求。
修复由于
non-monotonic CLOCK_MONOTONIC_COARSE引发的jemalloc断言问题。更多详情,请参见Fix jemalloc assertion due to non-monotonic CLOCK_MONOTONIC_COARSE。修复maxIntersections导致的crash。
递归移除单射函数链的UniqInjectiveFunctionsEliminationPass。更多详情,请参见UniqInjectiveFunctionsEliminationPass recursively removing chain of injective functions。
修复无法连接到选择的任何副本返回的错误。
构建带有分析器的jemalloc。
修复keeper关闭会话可能会导致后续连接出错的问题。
修复keeper启动时确保有足够的全局线程池。
修复文件系统缓存导致的内存统计错误。