apache / apache/iotdb-client-rust
reconnect() holds the pool slot while sleeping between attempts
- 主要语言
- Rust
- 星标
- 1
- 派生
- 0
- PR 合并指标
- 30 天内没有已合并 PR
描述
`Session::reconnect()` sleeps `retry_interval` between passes and walks all endpoints while still holding its pool slot. With defaults (3 endpoints, 3 attempts, 1s interval) the worst case is ~92s, during which concurrent `acquire()` callers get "pool exhausted" — an error that points away from the real cause.
Fix: when the session is handed out from a pool, skip the between-attempt sleeps (the slot is still held, but the hold time drops to the connect+handshake attempts), or shorten them. Standalone sessions keep the current C#-style pacing.
贡献指南
这个仓库没有索引到贡献指南
调研方向
首先阅读 Session::reconnect,以及将会话交给 acquire 调用方的 pool 路径,重点关注如何识别 pooled 会话和 standalone 会话。验证 pooled reconnect 尝试不会保留尝试之间的 sleep,而 standalone 会话仍保持当前的节奏,并确认并发进行 pool acquisition 时不再因延迟而失败。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- rust
- 领域
- databases
- Issue 类型
- 缺陷
- 难度
- 3/5
- 预计耗时
- 1-2 天
- 活跃度
- 活跃
- 描述清晰度
- 基本清楚
- 新手友好度
- 65/100