Skip to content
Snippets Groups Projects
user avatar
Yasar Alev authored
* Lookup, cache and pool improvements

* Added parallel lookup and fix cache evict race conditions

* Modernization & Refactor resolver middleware and its handler

* Minor issue with codecov checkout

* Added DNSTap middleware and fix racing issues

* Added DNSTap test files

* Added domain metrics, refactored config and blocklist

* Fix golangci-lint version compatibility

Update toolchain from go1.24.3 to go1.23.4 to match golangci-lint's supported Go version

* Fix log constant issue

* Improve code documentation based on review feedback

- Expand memory barrier comment to explain the purpose of no-op CAS
- Document eviction batch size strategy and 5% threshold rationale

* Fix golangci-lint issues and update configuration

- Update golangci-lint-action to v8 with latest version
- Set Go version to 1.23 in workflow
- Add .golangci.yml with minimal v2 configuration
- Fix all lint issues:
  - Remove unused modernLookup function and its helpers
  - Fix ineffectual assignments
  - Remove unnecessary type conversions
  - Remove unused imports
  - Remove test file for deleted functions
- Improve code documentation based on review feedback

* Fixed linter issue

* Fix windows log issues

* Fix Windows path escaping in config tests

Escape backslashes in Windows file paths for TOML configuration
to prevent parsing errors like '\U' being interpreted as Unicode escape

* Update middleware/cache/cache.go

Co-authored-by: default avatarCopilot <175728472+Copilot@users.noreply.github.com>

* Optimize cache eviction with random bucket sampling

- Implement efficient random bucket sampling for large caches
- Avoid full iteration by sampling random buckets
- Keep simple iteration for small caches (< 100 entries)
- Add RandomSample method to SyncUInt64Map
- Significantly improves eviction performance for large caches

Based on Copilot's suggestion to avoid costly full iteration

* Skip permission test on Windows

Add runtime check to skip directory permission test on Windows
since Windows handles file permissions differently than Unix systems

* Fix config test for windows

* Rollback original NSS lookup functions

* Parallel nss lookup deleted, update README benchmark section

* Cache middleware modernized and refactored

* Added new cache files

* Delete unused functionality on cache test

* Added TCP keepalive for root and tld servers

* Optimize RandomSample to avoid O(n) permutation overhead

- Replace rand.Perm(numBuckets) with random sampling using a map
- Avoids generating full permutation for large maps
- More efficient for cache eviction operations
- Maintains same randomness guarantees without bias

* Fix linter issues

* Update benchmark results in README

- Updated SDNS v1.5.0 benchmark with latest performance metrics
- 709 QPS (improved from 694 QPS)
- 137ms average latency (improved from 140ms)
- Updated test date to June 2025
- Adjusted performance comparison percentages

---------

Co-authored-by: default avatarCopilot <175728472+Copilot@users.noreply.github.com>
c3f64c6c
History
Name Last commit Last update
..