[PR #3328] [MERGED] Deduplicate name server connections in the recursor #3749

Closed
opened 2026-03-16 12:00:30 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/hickory-dns/hickory-dns/pull/3328
Author: @marcus0x62
Created: 10/23/2025
Status: Merged
Merged: 10/28/2025
Merged by: @marcus0x62

Base: mainHead: dedup-name-server-conns


📝 Commits (8)

  • 73a3676 recursor: move Mock test harness to test-support
  • c6cec99 recursor: unit test for NS connection deduplication
  • 5ab0b98 recursor: reuse NameServer objects among NameServerPools
  • a1d98fe recursor: rename RecursorCacheMetrics to RecursorMetrics
  • 586c1e6 recursor: move SharedLookup from RecursorPool to resolver DnsHandle
  • dcc69ef recursor: move metrics from RecursorPool to RecursorDnsHandle
  • 41d294d recursor: move lookups from RecursorPool to RecursorDnsHandle
  • 198af38 recursor: remove RecursorPool

📊 Changes

11 files changed (+915 additions, -565 deletions)

View changed files

📝 Cargo.lock (+5 -0)
📝 crates/recursor/src/lib.rs (+2 -1)
📝 crates/recursor/src/metrics_tests.rs (+28 -381)
📝 crates/recursor/src/recursor.rs (+4 -4)
📝 crates/recursor/src/recursor_dns_handle.rs (+91 -43)
crates/recursor/src/recursor_pool.rs (+0 -128)
crates/recursor/src/tests.rs (+162 -0)
📝 crates/resolver/src/name_server_pool.rs (+71 -8)
crates/resolver/tests/tests.rs (+85 -0)
📝 tests/test-support/Cargo.toml (+5 -0)
📝 tests/test-support/src/lib.rs (+462 -0)

📄 Description

This deduplicates TCP connections in the recursor (#2738) and removes the RecursorPool abstraction. In eliminating the RecursorPool, it also address #3198.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/hickory-dns/hickory-dns/pull/3328 **Author:** [@marcus0x62](https://github.com/marcus0x62) **Created:** 10/23/2025 **Status:** ✅ Merged **Merged:** 10/28/2025 **Merged by:** [@marcus0x62](https://github.com/marcus0x62) **Base:** `main` ← **Head:** `dedup-name-server-conns` --- ### 📝 Commits (8) - [`73a3676`](https://github.com/hickory-dns/hickory-dns/commit/73a36761dfcda2034b88b94a070430749b65bcaf) recursor: move Mock test harness to test-support - [`c6cec99`](https://github.com/hickory-dns/hickory-dns/commit/c6cec996827a71a49f3e7150daabf65960d03483) recursor: unit test for NS connection deduplication - [`5ab0b98`](https://github.com/hickory-dns/hickory-dns/commit/5ab0b989f99b08941e9d18049785e441930527b5) recursor: reuse NameServer objects among NameServerPools - [`a1d98fe`](https://github.com/hickory-dns/hickory-dns/commit/a1d98fe6dccb282ed1a48d44219d925b9169cb88) recursor: rename RecursorCacheMetrics to RecursorMetrics - [`586c1e6`](https://github.com/hickory-dns/hickory-dns/commit/586c1e6fea7a72be6c040bcae93fc9ab70b083a4) recursor: move SharedLookup from RecursorPool to resolver DnsHandle - [`dcc69ef`](https://github.com/hickory-dns/hickory-dns/commit/dcc69efd3712f3ec5ef1cc9b48704b0b5920ad4d) recursor: move metrics from RecursorPool to RecursorDnsHandle - [`41d294d`](https://github.com/hickory-dns/hickory-dns/commit/41d294d3fd4ca6d27591f4fd69c0e8cc769cb668) recursor: move lookups from RecursorPool to RecursorDnsHandle - [`198af38`](https://github.com/hickory-dns/hickory-dns/commit/198af38b6c599b76b1c900030ac45aea2b18f1f9) recursor: remove RecursorPool ### 📊 Changes **11 files changed** (+915 additions, -565 deletions) <details> <summary>View changed files</summary> 📝 `Cargo.lock` (+5 -0) 📝 `crates/recursor/src/lib.rs` (+2 -1) 📝 `crates/recursor/src/metrics_tests.rs` (+28 -381) 📝 `crates/recursor/src/recursor.rs` (+4 -4) 📝 `crates/recursor/src/recursor_dns_handle.rs` (+91 -43) ➖ `crates/recursor/src/recursor_pool.rs` (+0 -128) ➕ `crates/recursor/src/tests.rs` (+162 -0) 📝 `crates/resolver/src/name_server_pool.rs` (+71 -8) ➕ `crates/resolver/tests/tests.rs` (+85 -0) 📝 `tests/test-support/Cargo.toml` (+5 -0) 📝 `tests/test-support/src/lib.rs` (+462 -0) </details> ### 📄 Description This deduplicates TCP connections in the recursor (#2738) and removes the RecursorPool abstraction. In eliminating the RecursorPool, it also address #3198. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-03-16 12:00:30 +03:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/hickory-dns#3749
No description provided.