feat: wire-level forwarding, cache, request hedging, and DoH keepalive
Wire-level forwarding path skips DnsPacket parse/serialize on the hot path. Cache stores raw wire bytes with pre-scanned TTL offsets — patches ID + TTLs in-place on lookup instead of cloning parsed packets. Request hedging (Dean & Barroso "Tail at Scale") fires a second parallel request after a configurable delay (default 10ms) when the primary upstream stalls. DoH keepalive loop prevents idle HTTP/2 + TLS connection teardown. Recursive resolver now hedges across multiple NS addresses and caches NS delegation records to skip TLD re-queries. Integration test harness polls /blocking/stats instead of fixed sleep, eliminating the blocklist-download race condition.
This commit is contained in:
@@ -37,6 +37,8 @@ webpki-roots = "1"
|
||||
criterion = { version = "0.8", features = ["html_reports"] }
|
||||
tower = { version = "0.5", features = ["util"] }
|
||||
http = "1"
|
||||
hickory-resolver = { version = "0.25", features = ["https-ring", "webpki-roots"] }
|
||||
hickory-proto = "0.25"
|
||||
|
||||
[[bench]]
|
||||
name = "hot_path"
|
||||
@@ -49,3 +51,7 @@ harness = false
|
||||
[[bench]]
|
||||
name = "dnssec"
|
||||
harness = false
|
||||
|
||||
[[bench]]
|
||||
name = "recursive_compare"
|
||||
harness = false
|
||||
|
||||
Reference in New Issue
Block a user