Smaller redirect/pool issues around acquire_for_device:
- 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.
- 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).
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.
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.
Smaller redirect/pool issues around
acquire_for_device:RedirectCachealready tracksseq/insertion order — prefer the newest hint (this stays within the documented "any idle session" behaviour).RedirectCacheTTL andmax_entriesare fixed at construction with noSessionConfigknob; this becomes measurable on large batch inserts. AddSessionConfigfields with the current defaults.TableSessionPoolexposesacquire()but notacquire_for_device(), so table-mode users accumulate hints no pool API can consume. Expose the underlyingSessionPool::acquire_for_device.