Skip to content

Design RDMA runtime recovery and controlled TCP fallback - #91

Closed
Spicy-cream wants to merge 1 commit into
masterfrom
feature/rdma-runtime-recovery-design
Closed

Spicy-cream wants to merge 1 commit into
masterfrom
feature/rdma-runtime-recovery-design

Conversation

@Spicy-cream

@Spicy-cream Spicy-cream commented Oct 26, 2026 •

Copy link
Copy Markdown

当前 RDMA 握手支持回落 TCP,但建链后的错误 CQE 主要使连接失败,端口错误事件尚未与后续建链的隔离、冷却和恢复策略联动。本 PR 提出运行期故障恢复特性设计,基于 LinQuickDev/brpc master 的 87d498d。

设计涵盖本地端口与对端路径分层状态机、故障冷却及单连接恢复探测、AUTO/TCP_ONLY 运行时控制、连接池退休与代际隔离、后续新连接回落 TCP,以及多端口主备所需的设备资源域和按 PD 注册内存。正常 SQ 窗口耗尽继续作为 EAGAIN 背压,RNR 与传输重试耗尽分别处理,避免把单个对端问题误判为本地端口故障。

故障连接不在原 TCP fd 上切换数据流,不在 transport 中重放已经提交的请求。RPC 重试仍由现有策略、配额和 deadline 决定。跨 HCA 切换需要先改造 context、PD、MR 和 lkey 所有权;DEVICE_FATAL 的非致命恢复须以资源安全排空验证为前提。

交付分为单设备隔离与 TCP 恢复、SQ 停顿检测和有限 RNR 配置、多设备主备三个阶段。文档包含接口落点、配置建议、生命周期约束、可观测性和单测及真机故障注入验收矩阵,并在中文 RDMA 文档增加入口。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant