已合并
[core] chore: Config Store 可通过环境变量配置心跳超时 #1253
[core] chore: Config Store 可通过环境变量配置心跳超时 #1253
已合并
shilinlee创建于 9月7日
shilinlee
shilinlee成员
9月7日

合入来源

问题/功能描述

Config Store 心跳超时原先按固定心跳轮次判断,无法配置超时时间或关闭超时检测。

修改方案描述

新增环境变量 MF_CONFIG_STORE_HEARTBEAT_TIMEOUT_S,直接按秒判断超时:

  • 默认值为 60(60 秒)。
  • 0 表示永不因心跳超时判定断链。
  • 正数表示超时时间,最大支持 3600(1 小时)。
  • 非法值或超限值记录 ERROR 日志并回退默认值。

服务端检查周期及 TCP 断链处理逻辑保持不变,同步更新环境变量和 HA 文档。

是否涉及UT/ST

开发自检

likedislike
Pull Request已成功合入, 合并人@chenxin
(感谢 shilinlee 的贡献)
shilinleeshilinlee成员
9月7日 创建了 pull request,commit 2f747d96
atomgit-bot
atomgit-bot
9月7日 评论:

变更摘要

本 PR 旨在让 Config Store 的心跳超时可配置:原先按固定心跳轮次(HEARTBEAT_TIMEOUT = 30)判断超时,现改为按毫秒直接判断,由新增环境变量 MF_CONFIG_STORE_HEARTBEAT_TIMEOUT_MS 控制。默认值 60000(60 秒),0 表示永不因心跳超时判定断链,最大支持 3600000(1 小时);非法值或超限值记录 ERROR 日志并回退默认值。改动集中在 AccStoreServer(smem_tcp_config_store_server.cpp / .h)的超时解析与检查逻辑,服务端检查周期及 TCP 断链处理逻辑保持不变,并同步新增环境变量定义(mf_env_define.h)与 2 个单元测试。

主要改动

  • 新增毫秒级超时解析方法:在 AccStoreServer 中新增静态方法 ParseHeartbeatTimeoutMs,读取环境变量 MF_CONFIG_STORE_HEARTBEAT_TIMEOUT_MS 并校验取值范围([0, 3600000]),非法或超限时记录 ERROR 日志并返回默认值 DEFAULT_HEARTBEAT_TIMEOUT_MS = 60000。
  • 重写心跳超时判断逻辑:删除固定轮次数常量 HEARTBEAT_TIMEOUT = 30,改用 DEFAULT_HEARTBEAT_TIMEOUT_MS 与 MAX_HEARTBEAT_TIMEOUT_MS = 3600000 常量;检查线程 CheckerThreadTask 的断链条件由 (curTime - it->second) / HEARTBEAT_INTERVAL > HEARTBEAT_TIMEOUT 改为 heartBeatTimeoutMs_ > 0 && curTime - it->second >= heartBeatTimeoutMs_,实现按毫秒超时且 0 值时关闭超时检测。
  • 扩展成员与声明:在 smem_tcp_config_store_server.h 中新增成员变量 heartBeatTimeoutMs_ 及静态方法 ParseHeartbeatTimeoutMs 的声明,两个构造函数均以环境变量解析结果初始化该成员。
  • 新增环境变量定义:在 mf_env_define.h 中通过 GetEnvStr 注册 MF_CONFIG_STORE_HEARTBEAT_TIMEOUT_MS 环境变量。
  • 补充单元测试:在 test_tcp_config_store_server.cpp 中新增 HeartbeatTimeoutParsesMillisecondsAndZero 与 HeartbeatTimeoutMissingOrInvalidUsesDefault 两个用例,覆盖零值、正数、默认值、非法值(-1、abc)及 1 小时上限边界。
likedislike
不准确?
atomgit-bot
atomgit-bot
9月7日 评论:

代码审查

✅ 未发现问题

likedislike
不准确?
ascend-robot
ascend-robot成员
9月7日 评论:
流水线 PR-pipeline_memfabric_hybrid#5745 (重试第1次) [ commitID:6520110e ] 已完成
阶段 任务名 状态 详情
编译构建 Build_memfabric-hybrid ✅ COMPLETED >>>
Build_memfabric-hybrid-bazel ✅ COMPLETED >>>
恶意代码检查 Antipoison_mf ✅ COMPLETED >>>
编码安全与规范检查 pre-commit ✅ COMPLETED >>>
CodeCheck_mf ✅ COMPLETED >>>
开源片段检查 SCA_mf ✅ COMPLETED >>>
开发者测试 UT_memfabric-hybrid ✅ COMPLETED >>>
zbal_ascend_pr_build_test_ut ✅ COMPLETED >>>
流水线 PR-pipeline_memfabric_hybrid ✅ COMPLETED >>>
此流水线已支持下列评论快捷指令,仅PR创建者和白名单成员评论有效
  • compile : 运行流水线
  • retry : 重试流水线所有失败子任务
  • retry <任务名> : 仅重试指定失败子任务
  • stop : 停止流水线
likedislike
此处折叠了57条消息 查看更多
shilinleeshilinlee成员
9月8日 删除了label:pr-audit-failed
mrh1024mrh1024成员
9月8日 将mrh1024设为评审人
mrh1024mrh1024成员
9月8日 通过了评审
chenxinchenxin成员
9月8日 通过审查
chenxinchenxin成员
9月8日 合入了pull request