恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

ClickHouse v25.5.6.14-stable 更新解析:本地读写带宽热更新、formatDateTime 修复与稳定性增强

  • 首页
  • 资讯中心
  • /
  • ClickHouse v25.5.6.14-stable 更新解析:本地读写带宽热更新、formatDateTime 修复与稳定性增强

相关资讯

store-longevity-radar 技能详解:基于韩国上商圈信息快照的「长寿店铺雷达」实现 2026/9/19 3:07:52
如何快速上手 RealSense 深度相机:librealsense 从零到三维感知的完整部署路径 2026/9/19 3:02:51
组合钻床PLC控制硬件设计全解析:从主回路到I/O分配 2026/9/19 3:02:51

最新资讯

价值投资核心逻辑与实战难点解析
AI时代高考志愿填报指南:如何选择未来不被淘汰的专业
书霸AI:把课程论文写成一场小型研究
Hugo time.Format 函数完全指南:日期时间格式化、时区与本地化实战
书霸AI:课程论文避坑指南
智能电表调试必读:DLMS/COSEM报文抓包与解析实战

今日推荐

oh-my-hermes:打造跨工具的命令编排与插件化工作流
OpenClaw.NET 用 /goal start 跑长任务,模型 Base URL 改到 TaoToken
SYB创业计划书财务逻辑拆解:从销售收入预测到现金流量计划

本周热门

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验
Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化
Flutter应用改名全指南:从Android到iOS的配置与工具实践

本月精选

自研推理加速器Redwood:两周内实现PyTorch模型高效部署的实战教程
V4L2摄像头采集实战:从camera_client.rar到出图全流程解析
从“谁发明了钢琴键”到知识问答智能体:RAG与记忆工程实践

ClickHouse v25.5.6.14-stable 更新解析:本地读写带宽热更新、formatDateTime 修复与稳定性增强

发布时间:2026/9/19 3:07:52
ClickHouse v25.5.6.14-stable 更新解析:本地读写带宽热更新、formatDateTime 修复与稳定性增强 ClickHouse v25.5.6.14-stable 更新解析本地读写带宽热更新、formatDateTime 修复与稳定性增强【免费下载链接】ClickHouseClickHouse® is a real-time analytics database management system项目地址: https://gitcode.com/GitHub_Trending/cli/ClickHouse本文围绕 ClickHouse 官方稳定版发布说明 docs/changelogs/v25.5.6.14-stable.md 展开逐一解读该补丁版本引入的改进、用户可见缺陷修复与构建测试优化。读完本文你将掌握服务器级带宽限流参数的热加载机制、formatDateTime格式符组合的已知陷阱以及非缓存数据库元数据生命周期相关的底层行为。版本概览v25.5.6.14-stable 是 v25.5 系列的一个补丁版本基线提交为ac7909e3af3相比上一个补丁版本 v25.5.5.19-stablec7635f09ae1包含以下几类变更Improvement改进1 项涉及服务器本地读写带宽限制参数支持运行时热加载Bug Fix用户可见缺陷修复2 项分别涉及非缓存数据库元数据失效与formatDateTime的%f格式符输出错误Build/Testing/Packaging Improvement构建与测试改进1 项升级libarchive到 3.8.1内部小修复Keeper 的 digest/auth 相关修复以及getSessionID增加错误响应。该发布说明中还保留有FIXME占位标记属于发布流程中的常规标注不影响对本版本变更内容的理解。改进本地读写带宽限制支持不重启热加载本版本最重要的改进是max_local_read_bandwidth_for_server和max_local_write_bandwidth_for_server这两个服务器级设置现在可以在不重启服务器的前提下动态重新加载对应 PR #82083。参数语义这两个参数在 src/Core/ServerSettings.cpp 中定义语义如下参数类型默认值说明max_local_read_bandwidth_for_serverUInt640服务器本地读取的最大速度单位字节/秒0表示不限速max_local_write_bandwidth_for_serverUInt640服务器本地写入的最大速度单位字节/秒0表示不限速它们与同族的远程网络带宽参数max_remote_read_network_bandwidth_for_server、max_remote_write_network_bandwidth_for_server共同构成服务器级全局限流体系。从声明中可以看到这些参数默认值为0不限速仅在显式配置时才会激活节流器。底层实现Throttler 限流器在 src/Interpreters/Context.cpp 的configureServerWideThrottling()中当对应带宽值非 0 时会构造一个Throttler实例并绑定ProfileEvents::LocalReadThrottlerBytes/LocalReadThrottlerSleepMicroseconds等事件用于观测节流效果if (auto bandwidth server_settings[ServerSetting::max_local_read_bandwidth_for_server]) local_read_throttler std::make_sharedThrottler(bandwidth, ProfileEvents::LocalReadThrottlerBytes, ProfileEvents::LocalReadThrottlerSleepMicroseconds); if (auto bandwidth server_settings[ServerSetting::max_local_write_bandwidth_for_server]) local_write_throttler std::make_sharedThrottler(bandwidth, ProfileEvents::LocalWriteThrottlerBytes, ProfileEvents::LocalWriteThrottlerSleepMicroseconds);本地读写限流用于控制例如 MergeTree 存储引擎对本地磁盘或本地缓存进行读写时的总体吞吐避免某个查询或后台任务耗尽磁盘 IO 带宽而影响同一服务器上的其他负载。热加载的实现路径热加载的关键调用链位于服务器配置重载流程中。在 programs/server/Server.cpp配置重新加载时会读取新的服务器设置并调用reloadLocalThrottlerConfig/reloadRemoteThrottlerConfig完成节流器的动态重建size_t local_read_bandwidth new_server_settings[ServerSetting::max_local_read_bandwidth_for_server]; size_t local_write_bandwidth new_server_settings[ServerSetting::max_local_write_bandwidth_for_server]; global_context-reloadLocalThrottlerConfig(local_read_bandwidth, local_write_bandwidth); LOG_INFO(log, Setting max_local_read_bandwidth_for_server was set to {}, local_read_bandwidth); LOG_INFO(log, Setting max_local_write_bandwidth_for_server was set to {}, local_write_bandwidth);这意味着运维人员调整带宽上限时无需再执行停机重启直接修改配置文件并触发SYSTEM RELOAD CONFIG或配置自动重载即可生效服务器日志会输出新值以确认加载结果。配置方式与适用性在 ClickHouse 服务端配置文件中既可以将这两个参数作为顶级服务器设置写入也可以放入profiles.default配置节。后者之所以可行是因为 src/Core/ServerSettings.cpp 的settings_from_profile_allowlist白名单明确包含了这四项带宽参数max_remote_read_network_bandwidth_for_server, max_remote_write_network_bandwidth_for_server, max_local_read_bandwidth_for_server, max_local_write_bandwidth_for_server,典型的配置片段如下clickhouse max_local_read_bandwidth_for_server104857600/max_local_read_bandwidth_for_server max_local_write_bandwidth_for_server52428800/max_local_write_bandwidth_for_server /clickhouse上面示例将本地读限流为 100 MB/s、本地写限流为 50 MB/s。需要说明的是限流对吞吐有直接影响建议结合system.events中LocalReadThrottlerBytes等 ProfileEvent 观测实际节流情况后再确定合理的带宽阈值。缺陷修复一非缓存数据库实现的元数据失效问题本版本修复了一个与数据库元数据生命周期相关的用户可见问题PR #82939当使用非缓存non-caching的 Database 实现时相应表的元数据会在列被返回之后被删除从而导致引用失效。在 ClickHouse 的架构中IDatabase接口见 src/Databases存在多种实现其中缓存型实现会将表元数据保存在内存中以加速访问而非缓存实现每次都会从底层介质读取元数据。此前在非缓存实现中调用方先取得列信息ColumnsDescription再持有其引用继续使用但底层元数据对象随后即被析构导致悬垂引用进而引发未定义行为或错误结果。本次修复确保在返回列描述之后元数据对象仍然保持有效直到引用方完成使用。该问题属于用户可见的行为缺陷因此被归类为 Bug Fix 并回移植到稳定分支。如果您的部署使用了非缓存类型的数据库引擎升级到本版本即可规避此类引用失效带来的潜在崩溃或异常行为。缺陷修复二formatDateTime 的 %f 与变长格式符组合输出错误本版本修复了formatDateTime函数的一个输出错误PR #83020当格式符%f毫秒/微秒小数部分与变长格式符如%M分钟或月份名一起使用时函数输出不正确。相关源码位置formatDateTime的实现位于 src/Functions/formatDateTime.cpp其中MySQL 风格格式符%f的处理逻辑见mysqlFractionalSecond及相关的mysqlFractionalSecondScaleNumDigitssrc/Functions/formatDateTime.cpp该文件的格式符说明表中明确列出%f表示小数秒fractional second示例输出如123456见 src/Functions/formatDateTime.cppJoda 风格下对应的jodaFractionOfSecond处理逻辑位于 src/Functions/formatDateTime.cpp。问题现象与修复意义%f会根据时间数据类型的精度scale输出对应位数的小数秒。当它与%M分钟这类变长格式符组合出现在同一格式串中时旧的解析逻辑会对格式串中每个格式符占用的宽度产生错误判断导致小数部分与其他字段的输出错位或内容异常。修复后的行为是无论格式串中是否同时存在变长格式符%f都能正确输出小数秒。对于依赖formatDateTime生成日志时间戳、指标标签或报表时间的用户这一修复保证了格式化结果的稳定性和一致性。验证示例-- 修复前%f 与 %M分钟组合时输出可能错误 SELECT formatDateTime(toDateTime64(2025-06-15 12:34:56.123456, 6), %Y-%m-%d %H:%M:%S.%f); -- 修复后应稳定输出2025-06-15 12:34:56.123456构建与测试改进升级 libarchive 3.8.1本版本将构建依赖libarchive升级至 3.8.1PR #82648。升级主要带来上游安全与稳定性修复属于常规的依赖维护不改变用户可见的 SQL 语义。内部小修复Keeper 与 getSessionID发布说明末尾还包含两处被标记为“NOT FOR CHANGELOG / INSIGNIFICANT”的内部修复随本版本一并合入Keeper 相关修复PR #82111针对 ClickHouse Keeper 的小型 digest摘要与认证auth相关修复提升 Keeper 会话与权限校验的健壮性getSessionID 错误响应PR #82600为获取会话 ID 的调用增加错误响应路径避免异常场景下调用方得不到明确反馈。这两项均不改变对外行为但体现了本补丁版本在稳定性与内部一致性上的持续收敛。升级建议若你依赖服务器级本地磁盘读写限流并希望在高峰时段动态调整带宽而不中断服务本版本的max_local_read_bandwidth_for_server/max_local_write_bandwidth_for_server热加载能力可以直接满足需求若你的环境中启用了非缓存型数据库引擎或大量使用formatDateTime拼接含小数秒的时间字符串建议优先升级到 v25.5.6.14-stable 及以上版本以规避对应的引用失效与输出错误升级后可通过日志中的Setting max_local_read_bandwidth_for_server was set to ...信息确认带宽参数的动态加载结果。以上内容均以本仓库 docs/changelogs/v25.5.6.14-stable.md 为骨架并结合 src/Core/ServerSettings.cpp、src/Interpreters/Context.cpp、programs/server/Server.cpp 与 src/Functions/formatDateTime.cpp 等源码交叉印证确保每个结论都有可追溯的仓库依据。【免费下载链接】ClickHouseClickHouse® is a real-time analytics database management system项目地址: https://gitcode.com/GitHub_Trending/cli/ClickHouse创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号