Skip to content

feat(policy-smart): implement smart selection policy and SCI gate#24

Merged
MaurUppi merged 7 commits intomainfrom
feat/policy-smart
Feb 25, 2026
Merged

feat(policy-smart): implement smart selection policy and SCI gate#24
MaurUppi merged 7 commits intomainfrom
feat/policy-smart

Conversation

@MaurUppi
Copy link
Copy Markdown
Owner

Changelog

  • 实现 smart 选择策略接入:新增 policy 常量、解析、DialerGroup 选择分支与 AliveDialerSet.GetSmartBest()
  • 实现 Phase 1/3 核心行为:非对称 EMA(失败惩罚/成功恢复)与 penalty(指数累加、封顶、成功衰减)。
  • 实现 Phase 2 TCP 自适应重试:RouteDialTcp 增加重试循环、containsDialer 去重、防止重复命中同一 dialer。
  • 补充测试:
    • dialer 数学与评分行为测试(EMA/Penalty/Smart)
    • policy 解析与 group smart 接入测试
    • control 路由拨号重试语义测试
  • 新增 Policy Smart SCI workflow(SCI-1/SCI-2/SCI-3)并支持 feat/policy-smart push 触发。
  • 修复 control benchmark 测试冲突,确保 SCI-2/SCI-3 可稳定执行。

测试证明摘要

  • Policy Smart SCI 已在分支上通过:
  • 说明:本 PR 以 Policy Smart SCI 作为唯一且必需测试门禁;其验证范围覆盖本次 smart policy 的核心正确性、TCP 重试语义与并发竞态检查。

影响范围

  • common/consts/dialer.go
  • component/outbound/dialer_selection_policy.go
  • component/outbound/dialer_group.go
  • component/outbound/dialer/alive_dialer_set.go
  • component/outbound/dialer/connectivity_check.go
  • control/tcp.go
  • .github/workflows/policy-smart-sci.yml
  • 对应测试文件若干

备注

  • 本地存在未跟踪临时产物 dialer.testoutbound.test(未纳入提交)。

@github-actions
Copy link
Copy Markdown

github-actions bot commented Feb 24, 2026

DNS Benchmark Compare

  • Base ref: origin/main
  • Head ref: 8d3ee2e30229c776814021491e7df4068ee6bf15
  • Base strategy: merge-base
  • Suite profile: dns-module
  • Benchmark count: 3
  • Benchmark time: 200ms

Suite Status

  • control_core_flow: success
  • control_singleflight_scale: success
  • control_cache_hotpath: success
  • control_cache_structures: success
  • component_upstream_hotpath: success

control_core_flow

DNS Benchmark Compare

  • Base ref: origin/main
  • Base strategy: merge-base
  • Base commit: 35938e0638769c6ee40057bdab955f3cd4d99e6b
  • Head ref: 8d3ee2e30229c776814021491e7df4068ee6bf15
  • Head commit: 8d3ee2e30229c776814021491e7df4068ee6bf15
  • Package: ./control
  • Benchmark filter: ^Benchmark(PipelinedConn_Sequential|PipelinedConn_Concurrent|DnsController_Singleflight)$
  • Benchmark count: 3
  • Benchmark time: 200ms
  • Excluded test files: control/tcp_test.go,control/tcp_splice_bench_test.go

Common Benchmarks

  • Count: 3
goos: linux
goarch: amd64
pkg: github.com/daeuniverse/dae/control
cpu: AMD EPYC 7763 64-Core Processor                
                             │ /home/runner/work/dae/dae/bench-artifacts/control_core_flow/base_common.txt │ /home/runner/work/dae/dae/bench-artifacts/control_core_flow/head_common.txt │
                             │                                   sec/op                                    │                       sec/op                         vs base                │
PipelinedConn_Sequential-4                                                                    7.181µ ± ∞ ¹                                          7.043µ ± ∞ ¹       ~ (p=0.400 n=3) ²
PipelinedConn_Concurrent-4                                                                    7.811µ ± ∞ ¹                                          7.671µ ± ∞ ¹       ~ (p=0.100 n=3) ²
DnsController_Singleflight-4                                                                 0.2583n ± ∞ ¹                                         0.2773n ± ∞ ¹       ~ (p=0.100 n=3) ²
geomean                                                                                       243.8n                                                246.5n        +1.12%
¹ need >= 6 samples for confidence interval at level 0.95
² need >= 4 samples to detect a difference at alpha level 0.05

                             │ /home/runner/work/dae/dae/bench-artifacts/control_core_flow/base_common.txt │ /home/runner/work/dae/dae/bench-artifacts/control_core_flow/head_common.txt │
                             │                                    B/op                                     │                        B/op                          vs base                │
PipelinedConn_Sequential-4                                                                     736.0 ± ∞ ¹                                           736.0 ± ∞ ¹       ~ (p=1.000 n=3) ²
PipelinedConn_Concurrent-4                                                                     736.0 ± ∞ ¹                                           736.0 ± ∞ ¹       ~ (p=1.000 n=3) ²
DnsController_Singleflight-4                                                                   0.000 ± ∞ ¹                                           0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
geomean                                                                                                  ³                                                        +0.00%               ³
¹ need >= 6 samples for confidence interval at level 0.95
² all samples are equal
³ summaries must be >0 to compute geomean

                             │ /home/runner/work/dae/dae/bench-artifacts/control_core_flow/base_common.txt │ /home/runner/work/dae/dae/bench-artifacts/control_core_flow/head_common.txt │
                             │                                  allocs/op                                  │                      allocs/op                       vs base                │
PipelinedConn_Sequential-4                                                                     17.00 ± ∞ ¹                                           17.00 ± ∞ ¹       ~ (p=1.000 n=3) ²
PipelinedConn_Concurrent-4                                                                     17.00 ± ∞ ¹                                           17.00 ± ∞ ¹       ~ (p=1.000 n=3) ²
DnsController_Singleflight-4                                                                   0.000 ± ∞ ¹                                           0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
geomean                                                                                                  ³                                                        +0.00%               ³
¹ need >= 6 samples for confidence interval at level 0.95
² all samples are equal
³ summaries must be >0 to compute geomean

Head-Only Benchmarks

  • Count: 0
  • None

Output Files

  • /home/runner/work/dae/dae/bench-artifacts/control_core_flow/benchstat_common.txt
  • /home/runner/work/dae/dae/bench-artifacts/control_core_flow/base_common.txt
  • /home/runner/work/dae/dae/bench-artifacts/control_core_flow/head_common.txt
  • /home/runner/work/dae/dae/bench-artifacts/control_core_flow/head_only.txt

control_singleflight_scale

DNS Benchmark Compare

  • Base ref: origin/main
  • Base strategy: merge-base
  • Base commit: 35938e0638769c6ee40057bdab955f3cd4d99e6b
  • Head ref: 8d3ee2e30229c776814021491e7df4068ee6bf15
  • Head commit: 8d3ee2e30229c776814021491e7df4068ee6bf15
  • Package: ./control
  • Benchmark filter: ^Benchmark(AsyncCacheWithSingleflight|SingleflightOverhead|HighQpsScenario|RealisticDnsQuery)$
  • Benchmark count: 3
  • Benchmark time: 200ms
  • Excluded test files: control/tcp_test.go,control/tcp_splice_bench_test.go

Common Benchmarks

  • Count: 4
goos: linux
goarch: amd64
pkg: github.com/daeuniverse/dae/control
cpu: AMD EPYC 7763 64-Core Processor                
                                             │ /home/runner/work/dae/dae/bench-artifacts/control_singleflight_scale/base_common.txt │ /home/runner/work/dae/dae/bench-artifacts/control_singleflight_scale/head_common.txt │
                                             │                                        sec/op                                        │                            sec/op                             vs base                │
AsyncCacheWithSingleflight/1-concurrent-4                                                                              10.16m ± ∞ ¹                                                   10.16m ± ∞ ¹       ~ (p=1.000 n=3) ²
AsyncCacheWithSingleflight/10-concurrent-4                                                                             10.22m ± ∞ ¹                                                   10.17m ± ∞ ¹       ~ (p=0.100 n=3) ²
AsyncCacheWithSingleflight/100-concurrent-4                                                                            10.24m ± ∞ ¹                                                   10.26m ± ∞ ¹       ~ (p=0.200 n=3) ²
AsyncCacheWithSingleflight/1000-concurrent-4                                                                           10.53m ± ∞ ¹                                                   10.55m ± ∞ ¹       ~ (p=1.000 n=3) ²
SingleflightOverhead/WithSingleflight-4                                                                                317.8n ± ∞ ¹                                                   315.2n ± ∞ ¹       ~ (p=1.000 n=3) ²
SingleflightOverhead/WithoutSingleflight-4                                                                             35.86n ± ∞ ¹                                                   35.46n ± ∞ ¹       ~ (p=1.000 n=3) ²
RealisticDnsQuery-4                                                                                                    5.027m ± ∞ ¹                                                   5.025m ± ∞ ¹       ~ (p=0.700 n=3) ²
HighQpsScenario-4                                                                                                      42.87n ± ∞ ¹                                                   42.29n ± ∞ ¹       ~ (p=1.000 n=3) ²
geomean                                                                                                                113.5µ                                                         113.0µ        -0.43%
¹ need >= 6 samples for confidence interval at level 0.95
² need >= 4 samples to detect a difference at alpha level 0.05

                                             │ /home/runner/work/dae/dae/bench-artifacts/control_singleflight_scale/base_common.txt │ /home/runner/work/dae/dae/bench-artifacts/control_singleflight_scale/head_common.txt │
                                             │                                  upstream_calls/op                                   │                      upstream_calls/op                        vs base                │
AsyncCacheWithSingleflight/1-concurrent-4                                                                               1.000 ± ∞ ¹                                                    1.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
AsyncCacheWithSingleflight/10-concurrent-4                                                                              1.000 ± ∞ ¹                                                    1.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
AsyncCacheWithSingleflight/100-concurrent-4                                                                             1.000 ± ∞ ¹                                                    1.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
AsyncCacheWithSingleflight/1000-concurrent-4                                                                            1.000 ± ∞ ¹                                                    1.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
geomean                                                                                                                 1.000                                                          1.000        +0.00%
¹ need >= 6 samples for confidence interval at level 0.95
² all samples are equal

                                             │ /home/runner/work/dae/dae/bench-artifacts/control_singleflight_scale/base_common.txt │ /home/runner/work/dae/dae/bench-artifacts/control_singleflight_scale/head_common.txt │
                                             │                                         B/op                                         │                             B/op                              vs base                │
AsyncCacheWithSingleflight/1-concurrent-4                                                                               801.0 ± ∞ ¹                                                    773.0 ± ∞ ¹       ~ (p=0.300 n=3) ²
AsyncCacheWithSingleflight/10-concurrent-4                                                                            1.302Ki ± ∞ ¹                                                  1.234Ki ± ∞ ¹       ~ (p=1.000 n=3) ²
AsyncCacheWithSingleflight/100-concurrent-4                                                                           6.380Ki ± ∞ ¹                                                  5.812Ki ± ∞ ¹       ~ (p=1.000 n=3) ²
AsyncCacheWithSingleflight/1000-concurrent-4                                                                          51.53Ki ± ∞ ¹                                                  51.39Ki ± ∞ ¹       ~ (p=1.000 n=3) ²
SingleflightOverhead/WithSingleflight-4                                                                                 81.00 ± ∞ ¹                                                    82.00 ± ∞ ¹       ~ (p=0.400 n=3) ²
SingleflightOverhead/WithoutSingleflight-4                                                                              4.000 ± ∞ ¹                                                    4.000 ± ∞ ¹       ~ (p=1.000 n=3) ³
RealisticDnsQuery-4                                                                                                     116.0 ± ∞ ¹                                                    116.0 ± ∞ ¹       ~ (p=1.000 n=3) ²
HighQpsScenario-4                                                                                                       8.000 ± ∞ ¹                                                    8.000 ± ∞ ¹       ~ (p=1.000 n=3) ³
geomean                                                                                                                 320.3                                                          313.4        -2.13%
¹ need >= 6 samples for confidence interval at level 0.95
² need >= 4 samples to detect a difference at alpha level 0.05
³ all samples are equal

                                             │ /home/runner/work/dae/dae/bench-artifacts/control_singleflight_scale/base_common.txt │ /home/runner/work/dae/dae/bench-artifacts/control_singleflight_scale/head_common.txt │
                                             │                                      allocs/op                                       │                          allocs/op                            vs base                │
AsyncCacheWithSingleflight/1-concurrent-4                                                                               13.00 ± ∞ ¹                                                    13.00 ± ∞ ¹       ~ (p=1.000 n=3) ²
AsyncCacheWithSingleflight/10-concurrent-4                                                                              23.00 ± ∞ ¹                                                    23.00 ± ∞ ¹       ~ (p=1.000 n=3) ³
AsyncCacheWithSingleflight/100-concurrent-4                                                                             120.0 ± ∞ ¹                                                    117.0 ± ∞ ¹       ~ (p=1.000 n=3) ³
AsyncCacheWithSingleflight/1000-concurrent-4                                                                           1.054k ± ∞ ¹                                                   1.052k ± ∞ ¹       ~ (p=1.000 n=3) ³
SingleflightOverhead/WithSingleflight-4                                                                                 1.000 ± ∞ ¹                                                    1.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
SingleflightOverhead/WithoutSingleflight-4                                                                              1.000 ± ∞ ¹                                                    1.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
RealisticDnsQuery-4                                                                                                     1.000 ± ∞ ¹                                                    1.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
HighQpsScenario-4                                                                                                       1.000 ± ∞ ¹                                                    1.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
geomean                                                                                                                 8.855                                                          8.825        -0.34%
¹ need >= 6 samples for confidence interval at level 0.95
² all samples are equal
³ need >= 4 samples to detect a difference at alpha level 0.05

                    │ /home/runner/work/dae/dae/bench-artifacts/control_singleflight_scale/base_common.txt │ /home/runner/work/dae/dae/bench-artifacts/control_singleflight_scale/head_common.txt │
                    │                                   cache_hit_rate_%                                   │                         cache_hit_rate_%                           vs base           │
RealisticDnsQuery-4                                                                            50.00 ± ∞ ¹                                                         50.00 ± ∞ ¹  ~ (p=1.000 n=3) ²
¹ need >= 6 samples for confidence interval at level 0.95
² all samples are equal

                    │ /home/runner/work/dae/dae/bench-artifacts/control_singleflight_scale/base_common.txt │ /home/runner/work/dae/dae/bench-artifacts/control_singleflight_scale/head_common.txt │
                    │                                 total_upstream_calls                                 │                       total_upstream_calls                         vs base           │
RealisticDnsQuery-4                                                                            10.00 ± ∞ ¹                                                         10.00 ± ∞ ¹  ~ (p=1.000 n=3) ²
¹ need >= 6 samples for confidence interval at level 0.95
² need >= 4 samples to detect a difference at alpha level 0.05

                  │ /home/runner/work/dae/dae/bench-artifacts/control_singleflight_scale/base_common.txt │ /home/runner/work/dae/dae/bench-artifacts/control_singleflight_scale/head_common.txt │
                  │                                 deduplication_rate_%                                 │                       deduplication_rate_%                         vs base           │
HighQpsScenario-4                                                                            100.0 ± ∞ ¹                                                         100.0 ± ∞ ¹  ~ (p=1.000 n=3) ²
¹ need >= 6 samples for confidence interval at level 0.95
² all samples are equal

                  │ /home/runner/work/dae/dae/bench-artifacts/control_singleflight_scale/base_common.txt │ /home/runner/work/dae/dae/bench-artifacts/control_singleflight_scale/head_common.txt │
                  │                                    upstream_calls                                    │                          upstream_calls                            vs base           │
HighQpsScenario-4                                                                            14.00 ± ∞ ¹                                                         12.00 ± ∞ ¹  ~ (p=0.400 n=3) ²
¹ need >= 6 samples for confidence interval at level 0.95
² need >= 4 samples to detect a difference at alpha level 0.05

Head-Only Benchmarks

  • Count: 0
  • None

Output Files

  • /home/runner/work/dae/dae/bench-artifacts/control_singleflight_scale/benchstat_common.txt
  • /home/runner/work/dae/dae/bench-artifacts/control_singleflight_scale/base_common.txt
  • /home/runner/work/dae/dae/bench-artifacts/control_singleflight_scale/head_common.txt
  • /home/runner/work/dae/dae/bench-artifacts/control_singleflight_scale/head_only.txt

control_cache_hotpath

DNS Benchmark Compare

  • Base ref: origin/main
  • Base strategy: merge-base
  • Base commit: 35938e0638769c6ee40057bdab955f3cd4d99e6b
  • Head ref: 8d3ee2e30229c776814021491e7df4068ee6bf15
  • Head commit: 8d3ee2e30229c776814021491e7df4068ee6bf15
  • Package: ./control
  • Benchmark filter: ^BenchmarkDnsCache_(PackedResponse|PackedResponse_Parallel|FillInto_Pack|FillInto_Pack_Parallel|GetPackedResponseWithApproximateTTL|GetPackedResponseWithApproximateTTL_Parallel|SyncMapLookup|SyncMapLookup_Parallel)$
  • Benchmark count: 3
  • Benchmark time: 200ms
  • Excluded test files: control/tcp_test.go,control/tcp_splice_bench_test.go

Common Benchmarks

  • Count: 8
goos: linux
goarch: amd64
pkg: github.com/daeuniverse/dae/control
cpu: AMD EPYC 7763 64-Core Processor                
                                                        │ /home/runner/work/dae/dae/bench-artifacts/control_cache_hotpath/base_common.txt │ /home/runner/work/dae/dae/bench-artifacts/control_cache_hotpath/head_common.txt │
                                                        │                                     sec/op                                      │                         sec/op                           vs base                │
DnsCache_PackedResponse-4                                                                                                   0.3189n ± ∞ ¹                                             0.3165n ± ∞ ¹       ~ (p=0.700 n=3) ²
DnsCache_PackedResponse_Parallel-4                                                                                          0.3502n ± ∞ ¹                                             0.2981n ± ∞ ¹       ~ (p=0.100 n=3) ²
DnsCache_FillInto_Pack-4                                                                                                     423.4n ± ∞ ¹                                              409.3n ± ∞ ¹       ~ (p=0.100 n=3) ²
DnsCache_FillInto_Pack_Parallel-4                                                                                            257.0n ± ∞ ¹                                              253.3n ± ∞ ¹       ~ (p=0.400 n=3) ²
DnsCache_GetPackedResponseWithApproximateTTL-4                                                                               4.672n ± ∞ ¹                                              4.670n ± ∞ ¹       ~ (p=0.800 n=3) ²
DnsCache_GetPackedResponseWithApproximateTTL_Parallel-4                                                                      2.499n ± ∞ ¹                                              3.321n ± ∞ ¹       ~ (p=0.100 n=3) ²
DnsCache_SyncMapLookup-4                                                                                                     74.40n ± ∞ ¹                                              76.61n ± ∞ ¹       ~ (p=0.100 n=3) ²
DnsCache_SyncMapLookup_Parallel-4                                                                                            82.63n ± ∞ ¹                                              82.42n ± ∞ ¹       ~ (p=0.400 n=3) ²
geomean                                                                                                                      13.11n                                                    13.26n        +1.18%
¹ need >= 6 samples for confidence interval at level 0.95
² need >= 4 samples to detect a difference at alpha level 0.05

                                                        │ /home/runner/work/dae/dae/bench-artifacts/control_cache_hotpath/base_common.txt │ /home/runner/work/dae/dae/bench-artifacts/control_cache_hotpath/head_common.txt │
                                                        │                                      B/op                                       │                          B/op                            vs base                │
DnsCache_PackedResponse-4                                                                                                     0.000 ± ∞ ¹                                               0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
DnsCache_PackedResponse_Parallel-4                                                                                            0.000 ± ∞ ¹                                               0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
DnsCache_FillInto_Pack-4                                                                                                      344.0 ± ∞ ¹                                               344.0 ± ∞ ¹       ~ (p=1.000 n=3) ²
DnsCache_FillInto_Pack_Parallel-4                                                                                             344.0 ± ∞ ¹                                               344.0 ± ∞ ¹       ~ (p=1.000 n=3) ²
DnsCache_GetPackedResponseWithApproximateTTL-4                                                                                0.000 ± ∞ ¹                                               0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
DnsCache_GetPackedResponseWithApproximateTTL_Parallel-4                                                                       0.000 ± ∞ ¹                                               0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
DnsCache_SyncMapLookup-4                                                                                                      0.000 ± ∞ ¹                                               0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
DnsCache_SyncMapLookup_Parallel-4                                                                                             16.00 ± ∞ ¹                                               16.00 ± ∞ ¹       ~ (p=1.000 n=3) ²
geomean                                                                                                                                 ³                                                            +0.00%               ³
¹ need >= 6 samples for confidence interval at level 0.95
² all samples are equal
³ summaries must be >0 to compute geomean

                                                        │ /home/runner/work/dae/dae/bench-artifacts/control_cache_hotpath/base_common.txt │ /home/runner/work/dae/dae/bench-artifacts/control_cache_hotpath/head_common.txt │
                                                        │                                    allocs/op                                    │                        allocs/op                         vs base                │
DnsCache_PackedResponse-4                                                                                                     0.000 ± ∞ ¹                                               0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
DnsCache_PackedResponse_Parallel-4                                                                                            0.000 ± ∞ ¹                                               0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
DnsCache_FillInto_Pack-4                                                                                                      6.000 ± ∞ ¹                                               6.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
DnsCache_FillInto_Pack_Parallel-4                                                                                             6.000 ± ∞ ¹                                               6.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
DnsCache_GetPackedResponseWithApproximateTTL-4                                                                                0.000 ± ∞ ¹                                               0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
DnsCache_GetPackedResponseWithApproximateTTL_Parallel-4                                                                       0.000 ± ∞ ¹                                               0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
DnsCache_SyncMapLookup-4                                                                                                      0.000 ± ∞ ¹                                               0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
DnsCache_SyncMapLookup_Parallel-4                                                                                             1.000 ± ∞ ¹                                               1.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
geomean                                                                                                                                 ³                                                            +0.00%               ³
¹ need >= 6 samples for confidence interval at level 0.95
² all samples are equal
³ summaries must be >0 to compute geomean

Head-Only Benchmarks

  • Count: 0
  • None

Output Files

  • /home/runner/work/dae/dae/bench-artifacts/control_cache_hotpath/benchstat_common.txt
  • /home/runner/work/dae/dae/bench-artifacts/control_cache_hotpath/base_common.txt
  • /home/runner/work/dae/dae/bench-artifacts/control_cache_hotpath/head_common.txt
  • /home/runner/work/dae/dae/bench-artifacts/control_cache_hotpath/head_only.txt

control_cache_structures

DNS Benchmark Compare

  • Base ref: origin/main
  • Base strategy: merge-base
  • Base commit: 35938e0638769c6ee40057bdab955f3cd4d99e6b
  • Head ref: 8d3ee2e30229c776814021491e7df4068ee6bf15
  • Head commit: 8d3ee2e30229c776814021491e7df4068ee6bf15
  • Package: ./control
  • Benchmark filter: ^BenchmarkDnsCache_(SyncMap|SyncMap_Parallel|CacheKeyGeneration|CacheKeyGeneration_Parallel|BufferPool|BufferPool_Parallel|MakeCopy|MakeCopy_Parallel|MultipleAnswers|FillIntoWithTTL|FillIntoWithTTL_Parallel)$
  • Benchmark count: 3
  • Benchmark time: 200ms
  • Excluded test files: control/tcp_test.go,control/tcp_splice_bench_test.go

Common Benchmarks

  • Count: 11
goos: linux
goarch: amd64
pkg: github.com/daeuniverse/dae/control
cpu: AMD EPYC 7763 64-Core Processor                
                                           │ /home/runner/work/dae/dae/bench-artifacts/control_cache_structures/base_common.txt │ /home/runner/work/dae/dae/bench-artifacts/control_cache_structures/head_common.txt │
                                           │                                       sec/op                                       │                           sec/op                            vs base                │
DnsCache_SyncMap-4                                                                                                 21.55n ± ∞ ¹                                                 21.19n ± ∞ ¹       ~ (p=0.100 n=3) ²
DnsCache_SyncMap_Parallel-4                                                                                       14.360n ± ∞ ¹                                                 9.536n ± ∞ ¹       ~ (p=0.100 n=3) ²
DnsCache_MultipleAnswers/PackedResponse-4                                                                         0.3113n ± ∞ ¹                                                0.3162n ± ∞ ¹       ~ (p=0.100 n=3) ²
DnsCache_MultipleAnswers/FillInto+Pack-4                                                                          1001.0n ± ∞ ¹                                                 986.4n ± ∞ ¹       ~ (p=0.100 n=3) ²
DnsCache_MultipleAnswers/FillIntoWithTTL-4                                                                         1.011µ ± ∞ ¹                                                 1.010µ ± ∞ ¹       ~ (p=1.000 n=3) ²
DnsCache_FillIntoWithTTL-4                                                                                         420.7n ± ∞ ¹                                                 427.5n ± ∞ ¹       ~ (p=0.200 n=3) ²
DnsCache_FillIntoWithTTL_Parallel-4                                                                                262.4n ± ∞ ¹                                                 364.5n ± ∞ ¹       ~ (p=0.100 n=3) ²
DnsCache_CacheKeyGeneration-4                                                                                      64.75n ± ∞ ¹                                                 63.10n ± ∞ ¹       ~ (p=0.700 n=3) ²
DnsCache_CacheKeyGeneration_Parallel-4                                                                             28.25n ± ∞ ¹                                                 28.26n ± ∞ ¹       ~ (p=1.000 n=3) ²
DnsCache_BufferPool-4                                                                                              16.25n ± ∞ ¹                                                 16.78n ± ∞ ¹       ~ (p=0.200 n=3) ²
DnsCache_BufferPool_Parallel-4                                                                                     7.664n ± ∞ ¹                                                 7.504n ± ∞ ¹       ~ (p=0.100 n=3) ²
DnsCache_MakeCopy-4                                                                                                34.77n ± ∞ ¹                                                 35.13n ± ∞ ¹       ~ (p=0.400 n=3) ²
DnsCache_MakeCopy_Parallel-4                                                                                       30.34n ± ∞ ¹                                                 30.24n ± ∞ ¹       ~ (p=0.700 n=3) ²
geomean                                                                                                            44.37n                                                       44.07n        -0.68%
¹ need >= 6 samples for confidence interval at level 0.95
² need >= 4 samples to detect a difference at alpha level 0.05

                                           │ /home/runner/work/dae/dae/bench-artifacts/control_cache_structures/base_common.txt │ /home/runner/work/dae/dae/bench-artifacts/control_cache_structures/head_common.txt │
                                           │                                        B/op                                        │                            B/op                             vs base                │
DnsCache_SyncMap-4                                                                                                  0.000 ± ∞ ¹                                                  0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
DnsCache_SyncMap_Parallel-4                                                                                         0.000 ± ∞ ¹                                                  0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
DnsCache_MultipleAnswers/PackedResponse-4                                                                           0.000 ± ∞ ¹                                                  0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
DnsCache_MultipleAnswers/FillInto+Pack-4                                                                            808.0 ± ∞ ¹                                                  808.0 ± ∞ ¹       ~ (p=1.000 n=3) ²
DnsCache_MultipleAnswers/FillIntoWithTTL-4                                                                          808.0 ± ∞ ¹                                                  808.0 ± ∞ ¹       ~ (p=1.000 n=3) ²
DnsCache_FillIntoWithTTL-4                                                                                          344.0 ± ∞ ¹                                                  344.0 ± ∞ ¹       ~ (p=1.000 n=3) ²
DnsCache_FillIntoWithTTL_Parallel-4                                                                                 344.0 ± ∞ ¹                                                  344.0 ± ∞ ¹       ~ (p=1.000 n=3) ²
DnsCache_CacheKeyGeneration-4                                                                                       0.000 ± ∞ ¹                                                  0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
DnsCache_CacheKeyGeneration_Parallel-4                                                                              0.000 ± ∞ ¹                                                  0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
DnsCache_BufferPool-4                                                                                               0.000 ± ∞ ¹                                                  0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
DnsCache_BufferPool_Parallel-4                                                                                      0.000 ± ∞ ¹                                                  0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
DnsCache_MakeCopy-4                                                                                                 80.00 ± ∞ ¹                                                  80.00 ± ∞ ¹       ~ (p=1.000 n=3) ²
DnsCache_MakeCopy_Parallel-4                                                                                        80.00 ± ∞ ¹                                                  80.00 ± ∞ ¹       ~ (p=1.000 n=3) ²
geomean                                                                                                                       ³                                                               +0.00%               ³
¹ need >= 6 samples for confidence interval at level 0.95
² all samples are equal
³ summaries must be >0 to compute geomean

                                           │ /home/runner/work/dae/dae/bench-artifacts/control_cache_structures/base_common.txt │ /home/runner/work/dae/dae/bench-artifacts/control_cache_structures/head_common.txt │
                                           │                                     allocs/op                                      │                         allocs/op                           vs base                │
DnsCache_SyncMap-4                                                                                                  0.000 ± ∞ ¹                                                  0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
DnsCache_SyncMap_Parallel-4                                                                                         0.000 ± ∞ ¹                                                  0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
DnsCache_MultipleAnswers/PackedResponse-4                                                                           0.000 ± ∞ ¹                                                  0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
DnsCache_MultipleAnswers/FillInto+Pack-4                                                                            14.00 ± ∞ ¹                                                  14.00 ± ∞ ¹       ~ (p=1.000 n=3) ²
DnsCache_MultipleAnswers/FillIntoWithTTL-4                                                                          14.00 ± ∞ ¹                                                  14.00 ± ∞ ¹       ~ (p=1.000 n=3) ²
DnsCache_FillIntoWithTTL-4                                                                                          6.000 ± ∞ ¹                                                  6.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
DnsCache_FillIntoWithTTL_Parallel-4                                                                                 6.000 ± ∞ ¹                                                  6.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
DnsCache_CacheKeyGeneration-4                                                                                       0.000 ± ∞ ¹                                                  0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
DnsCache_CacheKeyGeneration_Parallel-4                                                                              0.000 ± ∞ ¹                                                  0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
DnsCache_BufferPool-4                                                                                               0.000 ± ∞ ¹                                                  0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
DnsCache_BufferPool_Parallel-4                                                                                      0.000 ± ∞ ¹                                                  0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
DnsCache_MakeCopy-4                                                                                                 1.000 ± ∞ ¹                                                  1.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
DnsCache_MakeCopy_Parallel-4                                                                                        1.000 ± ∞ ¹                                                  1.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
geomean                                                                                                                       ³                                                               +0.00%               ³
¹ need >= 6 samples for confidence interval at level 0.95
² all samples are equal
³ summaries must be >0 to compute geomean

Head-Only Benchmarks

  • Count: 0
  • None

Output Files

  • /home/runner/work/dae/dae/bench-artifacts/control_cache_structures/benchstat_common.txt
  • /home/runner/work/dae/dae/bench-artifacts/control_cache_structures/base_common.txt
  • /home/runner/work/dae/dae/bench-artifacts/control_cache_structures/head_common.txt
  • /home/runner/work/dae/dae/bench-artifacts/control_cache_structures/head_only.txt

component_upstream_hotpath

DNS Benchmark Compare

  • Base ref: origin/main
  • Base strategy: merge-base
  • Base commit: 35938e0638769c6ee40057bdab955f3cd4d99e6b
  • Head ref: 8d3ee2e30229c776814021491e7df4068ee6bf15
  • Head commit: 8d3ee2e30229c776814021491e7df4068ee6bf15
  • Package: ./component/dns
  • Benchmark filter: ^BenchmarkUpstreamResolver_GetUpstream_(Serial|Parallel)$
  • Benchmark count: 3
  • Benchmark time: 200ms
  • Overlay dir: /home/runner/work/dae/dae/scripts/ci/benchmarks

Common Benchmarks

  • Count: 2
goos: linux
goarch: amd64
pkg: github.com/daeuniverse/dae/component/dns
cpu: AMD EPYC 7763 64-Core Processor                
                                        │ /home/runner/work/dae/dae/bench-artifacts/component_upstream_hotpath/base_common.txt │ /home/runner/work/dae/dae/bench-artifacts/component_upstream_hotpath/head_common.txt │
                                        │                                        sec/op                                        │                            sec/op                             vs base                │
UpstreamResolver_GetUpstream_Serial-4                                                                             3.141n ± ∞ ¹                                                   3.140n ± ∞ ¹       ~ (p=0.300 n=3) ²
UpstreamResolver_GetUpstream_Parallel-4                                                                           12.57n ± ∞ ¹                                                   12.55n ± ∞ ¹       ~ (p=1.000 n=3) ²
geomean                                                                                                           6.283n                                                         6.277n        -0.10%
¹ need >= 6 samples for confidence interval at level 0.95
² need >= 4 samples to detect a difference at alpha level 0.05

                                        │ /home/runner/work/dae/dae/bench-artifacts/component_upstream_hotpath/base_common.txt │ /home/runner/work/dae/dae/bench-artifacts/component_upstream_hotpath/head_common.txt │
                                        │                                         B/op                                         │                             B/op                              vs base                │
UpstreamResolver_GetUpstream_Serial-4                                                                              0.000 ± ∞ ¹                                                    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
UpstreamResolver_GetUpstream_Parallel-4                                                                            0.000 ± ∞ ¹                                                    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
geomean                                                                                                                      ³                                                                 +0.00%               ³
¹ need >= 6 samples for confidence interval at level 0.95
² all samples are equal
³ summaries must be >0 to compute geomean

                                        │ /home/runner/work/dae/dae/bench-artifacts/component_upstream_hotpath/base_common.txt │ /home/runner/work/dae/dae/bench-artifacts/component_upstream_hotpath/head_common.txt │
                                        │                                      allocs/op                                       │                          allocs/op                            vs base                │
UpstreamResolver_GetUpstream_Serial-4                                                                              0.000 ± ∞ ¹                                                    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
UpstreamResolver_GetUpstream_Parallel-4                                                                            0.000 ± ∞ ¹                                                    0.000 ± ∞ ¹       ~ (p=1.000 n=3) ²
geomean                                                                                                                      ³                                                                 +0.00%               ³
¹ need >= 6 samples for confidence interval at level 0.95
² all samples are equal
³ summaries must be >0 to compute geomean

Head-Only Benchmarks

  • Count: 0
  • None

Output Files

  • /home/runner/work/dae/dae/bench-artifacts/component_upstream_hotpath/benchstat_common.txt
  • /home/runner/work/dae/dae/bench-artifacts/component_upstream_hotpath/base_common.txt
  • /home/runner/work/dae/dae/bench-artifacts/component_upstream_hotpath/head_common.txt
  • /home/runner/work/dae/dae/bench-artifacts/component_upstream_hotpath/head_only.txt

@github-actions
Copy link
Copy Markdown

github-actions bot commented Feb 24, 2026

Policy Smart SCI

Job Status

  • ✅ SCI-1 Strategy Correctness: success
  • ✅ SCI-2 TCP Retry Semantics: success
  • ✅ SCI-3 Concurrency Race: success

@MaurUppi MaurUppi merged commit 2d305a1 into main Feb 25, 2026
34 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant