Support Manual Auto Exit for Maintenance Mode

未关闭
#3,033 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

@LZD-PratyushBhatt 已经在做这个了。

开始于 2025年5月5日。

  • #3035 来自 @LZD-PratyushBhatt —— 未关闭

评估

难度
4/5
预计耗时
3-5 天
新手友好度
35/100
Issue 类型
功能
描述清晰度
基本清楚
活跃度
停滞
技术栈
java

调研方向

首先定位手动进入维护模式的路径和由控制器触发的维护路径,然后追踪维护状态和用户配置的表示方式。在保留现有离线节点阈值行为的同时,定义手动进入的超时行为,包括未设置的情况;使用相关测试验证两条退出路径和超时处理。

由索引模型根据 Issue 内容生成。

描述

When a cluster enters maintenance mode, partition movement is paused and only state maintenance is performed. Maintenance mode can be triggered manually (via user config) or automatically by the Helix controller if the number of offline nodes exceeds a threshold.

Maintenance mode is frequently used to batch multiple config changes, ensuring the Helix controller only recalculates assignments after all updates are complete. The workflow is:

  1. Enter maintenance mode
  2. Apply config changes
  3. Exit maintenance mode

However, if an operation script fails mid-process, the cluster may remain stuck in maintenance mode, impacting availability.

Proposed Solution
  • Introduce a timeout parameter for manual maintenance mode entry.
  • When entering maintenance mode manually, users can specify a timeout.
  • If the cluster is still in maintenance mode after the timeout, Helix will automatically exit maintenance mode.
  • If no timeout is specified, auto-exit does not occur.
  • For controller-triggered maintenance mode (due to offline nodes), the existing behavior remains: the cluster exits maintenance mode only when the offline node count drops below the threshold.
主要语言
Java
星标
505
派生
258
平均合并
4 天 20 小时
30 天内合并 PR
3

环境准备

  • 没有 Dockerfile 或 Docker Compose 文件
  • 有 Pull Request 模板
  • 没有贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

apache/helix 的其他 Issue

查看 apache/helix 的全部 Issue

相似的 Issue

更多 Java Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。