跳转至

空闲区域校正契约

更新于 2026-09-11。空闲切换计划 是权威文档。这取代了先前的保留/恢复协议。

桌面端测量与能力

可选的分配 regionCorrection 命名空间支持 issue-window 和 report。服务器会签发代际、固定过期时间、分配纪元、现任区域和策略版本1。报告提供两个区域的测量值,或一个无法得出结论的原因。首个被接受的报告保持不可变;过期的或已变更的分配证据不能授权迁移。旧版放置提示保持独立。

桌面端在其控制能力头中通告 idle-regional-rehome-v1。没有新的移动端消息、保留控制租约或恢复通知。单元使用 idle_regional_rehome 持久化精确的活动、代际、分配和化身。已废弃的 finish_existing 数据库列始终写入0以保持模式兼容,并且不是资格信号。

Director 到源单元

POST /v1/admin/host-idle-rehome 需要已配置的 director 身份以及匹配的源单元/化身。严格请求包含:

  • v:1、稳定 UUID attemptId、userId、relayHostId;
  • sourceCellId、sourceCellIncarnation、sourceAssignmentEpoch、sourceGeneration;
  • targetCellId、经过认证的 cohortPercent 以及新鲜的 directorSafety。

严格响应为 {v:1,outcome},取值为 busy、committed、deferred 或 stale。丢失的 HTTP 响应是模糊的,并且不会消耗派发失败预算。重复投递保留相同的操作身份。单元状态通告区域协议3;新选择要求两个单元都处于协议3或更高版本。

存储与源所有权

selectIdleRegionalRehomeCandidates 是只读的。它检查新鲜证据、能力、策略、冷却、遥测和目标容量;有界轮换页面允许越过繁忙主机继续推进。选择并不能证明物理空闲。

HostSessionRegistry.idleRehome 在它们首次 await 之前统计接受、附加、控制命令和激活。只有空闲源会安装其准入门。新到达者收到正常的可重试路由失败。冲突地重用操作 ID 不能共享另一个权限元组的结果。

commitIdleRegionalRehome 在现有锁下重新检查精确请求,包括策略、队列、容量、全局速率和并发。它原子地预留目标、推进分配并记录尝试/源代际。它不会选择不同的主机或目标。完成记录在源端;普通迁移刷新、完成和过期恢复仍负责目标注册生命周期。

reconcileIdleRegionalRehome 在读取操作之前锁定分配。它区分已提交、未提交但实时源权限未变更,以及过期权限。解锁读取后缺失的数据永远不是回滚证明。数据库错误会使准入保持围栏状态,同时协调重试。成功切换会关闭/释放空的源控制;桌面端解析其正常分配并重新连接。确定的回滚只重新打开相同的源权限。

结果报告按单元/状态聚合实际尝试和迁移,不包含主机身份或保留源表。已完成的空闲移动不会授权关闭未来附加到目标的客户端。

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 orca48/orca