本文介绍云数据库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=0
Replicated数据库引擎下,只允许创建数据不落本地磁盘的表引擎,用以避免使用错误而导致的各种问题。
调整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启动时确保有足够的全局线程池。
修复文件系统缓存导致的内存统计错误。