From f3311ce8686d65f1290c6c20aae5ec8dbdd23aa1 Mon Sep 17 00:00:00 2001 From: Beinan Date: Thu, 22 Oct 2026 02:26:53 +0000 Subject: [PATCH] feat(wal): report runtime admission in node status --- crates/lance-context-wal/src/service/health.rs | 2 ++ docs/design/wal-node-service.md | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/crates/lance-context-wal/src/service/health.rs b/crates/lance-context-wal/src/service/health.rs index 28678531..e3392e8c 100644 --- a/crates/lance-context-wal/src/service/health.rs +++ b/crates/lance-context-wal/src/service/health.rs @@ -31,6 +31,7 @@ struct View { node: u64, ready: bool, groups: BTreeMap, + admission: runtime::Admission, disk: Option, maintenance: maintenance::Progress, snapshots_sent: u64, @@ -63,6 +64,7 @@ impl State { node: self.node, ready, groups, + admission: self.handle.admission(), disk: self.handle.disk_budget(), maintenance: self .maintenance diff --git a/docs/design/wal-node-service.md b/docs/design/wal-node-service.md index 5e410830..6c5f572f 100644 --- a/docs/design/wal-node-service.md +++ b/docs/design/wal-node-service.md @@ -84,6 +84,11 @@ must eventually stop; checkpoints cannot discard that data to improve a score. ## Observation and qualification The diagnostic HTTP listener serves `/health/live`, `/health/ready` and `/status`. +The status and readiness responses include `admission` observations for data, +control, incoming peers and outgoing peers. Each lane reports request and byte +capacity, current usage, and separate rejection counters. These independently +sampled local values distinguish request pressure from response-byte pressure; +they exclude the transport's separate budgets and do not change readiness. It allows at most 16 connections, bounds header buffers, disables keepalive and uses a two-second connection deadline, independently of WAL RPC capacity. Readiness reports active local workers and fresh local observations; it is not