milestone 31: concurrent upstream exchanges, dot session reuse, queue metrics
Gates / frontend (push) Successful in 1m26s
Gates / test (push) Successful in 1m55s
Gates / test-aarch64 (push) Failing after 3h1m8s
Gates / package (push) Successful in 3m55s
Gates / container (push) Successful in 15s
CI / gates (push) Failing after 3h21m29s

This commit is contained in:
2026-08-22 19:54:02 +02:00
parent 648d9b4496
commit 025edbb093
14 changed files with 2099 additions and 188 deletions
+9 -3
View File
@@ -313,6 +313,8 @@ const Env = struct {
pauser: pause_mod.Pause,
tables: local_tables_mod.LocalTables,
pool_entries: [1]pool_mod.Entry,
pool_slots: [1]pool_mod.Slot,
pool_recoveries: std.atomic.Value(u64),
pool: pool_mod.Pool,
state: server.WebState,
web: server.Server,
@@ -387,14 +389,18 @@ const Env = struct {
self.pauser = .{};
self.tables = .empty;
// Never exchanged with: the pool feeds `/metrics` and the
// `/api/health` upstream condition only.
self.pool_slots = .{.{ .client = .{ .ptr = undefined, .exchangeFn = undefined } }};
self.pool_recoveries = .init(0);
self.pool_entries = .{.{
.endpoint = transport.Endpoint.parse("https://dns.example/dns-query") catch unreachable,
// Never exchanged with: the pool feeds `/metrics` and the
// `/api/health` upstream condition only.
.client = .{ .ptr = undefined, .exchangeFn = undefined },
.slots = &self.pool_slots,
.priority = 1,
.enabled = true,
.health = .init,
.sem = .{ .permits = self.pool_slots.len },
.reuse_recoveries = &self.pool_recoveries,
}};
self.pool = .init(&self.pool_entries, .{}, .{
.attempt = .{ .raw = .fromMilliseconds(50), .clock = .awake },