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:Copilot <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:
Copilot <175728472+Copilot@users.noreply.github.com>
Name | Last commit | Last update |
---|---|---|
.. |