apache / apache/iotdb-client-rust

reconnect() holds the pool slot while sleeping between attempts

未关闭
#10 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
enhancement
主要语言
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

把新 issue 发到你的邮箱

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