apache / apache/iotdb-client-rust

Redirect/pool: endpoint matching has no normalization, newest hint not preferred, cache TTL/entries not configurable, TableSessionPool lacks acquire_for_device

オープン
#9 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
enhancement
主要言語
Rust
スター
1
フォーク
0
PR マージ指標
30日以内にマージされた PR はありません

説明

Smaller redirect/pool issues around `acquire_for_device`:

1. **Redirect endpoint matching is exact host-string equality with no normalization**. Hostname-vs-IP spelling silently disables the optimization on multi-DataNode clusters, with no log line so it is invisible from outside. At minimum the comparison should normalize case/whitespace and resolve hostname-vs-IP where feasible.
2. **When idle sessions hold conflicting hints for one device, the winner is queue position, not recency.** `RedirectCache` already tracks `seq`/insertion order — prefer the newest hint (this stays within the documented "any idle session" behaviour).
3. **`RedirectCache` TTL and `max_entries` are fixed at construction** with no `SessionConfig` knob; this becomes measurable on large batch inserts. Add `SessionConfig` fields with the current defaults.
4. **`TableSessionPool` exposes `acquire()` but not `acquire_for_device()`**, so table-mode users accumulate hints no pool API can consume. Expose the underlying `SessionPool::acquire_for_device`.

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

調査の方向性

まず RedirectCache、SessionConfig、TableSessionPool、SessionPool::acquire_for_device を見つけ、次に acquire_for_device がアイドル状態のセッションをどのように選択するか、またリダイレクトヒントがどのように比較されるかを追跡します。既存の pool テストと redirect テストを確認し、要求された 4 つの動作すべてについて完了を検証します。すなわち、正規化されたマッチング、最新のヒントの選択、設定可能な現在のデフォルト値、table-pool API です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
rust
領域
backend-api-design, databases
issue の種類
機能追加
難易度
4/5
見積もり時間
3〜5日
活発さ
活発
明瞭さ
おおむね明確
初心者へのやさしさ
45/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。