[PR #2363] [MERGED] Improve mgmt sync performance #15025

Closed
opened 2026-08-05 03:06:48 -04:00 by saavagebueno · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/netbirdio/netbird/pull/2363
Author: @lixmal
Created: 7/31/2024
Status: Merged
Merged: 8/7/2024
Merged by: @lixmal

Base: mainHead: feature/improve-sync-performance


📝 Commits (10+)

  • 38aad0a Add benchmarks
  • c0bc4e1 Improve getPeerConnectionResources performance
  • f373669 Improve updateAccountPeers performance
  • 651b312 Improve getPeersCustomZone performance
  • 2bdfb7f Improve toSyncResponse performance
  • 4d1ba0d Cache peer groups
  • e48cde8 Remove accessible peer numbers
  • 3d71f18 Fix missing err msg
  • a2c3a6e Fix tests and simplify custom peers zone
  • 0119614 Test toProtocolDNSConfig with cache

📊 Changes

22 files changed (+1000 additions, -169 deletions)

View changed files

📝 client/cmd/testutil_test.go (+7 -1)
📝 client/internal/engine_test.go (+6 -1)
📝 client/server/server_test.go (+6 -1)
📝 management/client/client_test.go (+8 -1)
📝 management/cmd/management.go (+1 -1)
📝 management/server/account.go (+82 -6)
📝 management/server/account_test.go (+17 -4)
📝 management/server/dns.go (+95 -47)
📝 management/server/dns_test.go (+157 -1)
📝 management/server/grpcserver.go (+33 -40)
📝 management/server/http/peers_handler.go (+6 -15)
📝 management/server/management_proto_test.go (+6 -1)
📝 management/server/management_test.go (+8 -2)
📝 management/server/nameserver_test.go (+6 -1)
📝 management/server/peer.go (+37 -9)
📝 management/server/peer/peer.go (+1 -2)
management/server/peer/peer_test.go (+31 -0)
📝 management/server/peer_test.go (+362 -0)
📝 management/server/policy.go (+11 -12)
📝 management/server/route_test.go (+6 -1)

...and 2 more files

📄 Description

Describe your changes

old:

$ go test -run '^$' -bench=BenchmarkUpdateAccountPeers ./management/server
goos: linux
goarch: amd64
pkg: github.com/netbirdio/netbird/management/server
cpu: 13th Gen Intel(R) Core(TM) i7-1355U
BenchmarkUpdateAccountPeers/Small-12                 568                 1.826 ms/op
BenchmarkUpdateAccountPeers/Medium-12                  9               139.3 ms/op
BenchmarkUpdateAccountPeers/Large-12                   1             15933 ms/op
BenchmarkUpdateAccountPeers/Small_single-12          198                 5.620 ms/op
BenchmarkUpdateAccountPeers/Medium_single-12           2               569.7 ms/op
BenchmarkUpdateAccountPeers/Large_5-12                 1             25845 ms/op
PASS
ok      github.com/netbirdio/netbird/management/server  59.603s

new:

$ go test -run '^$' -bench=BenchmarkUpdateAccountPeers ./management/server
goos: linux
goarch: amd64
pkg: github.com/netbirdio/netbird/management/server
cpu: 13th Gen Intel(R) Core(TM) i7-1355U
BenchmarkUpdateAccountPeers/Small-12                 649                 1.824 ms/op
BenchmarkUpdateAccountPeers/Medium-12                 30                53.51 ms/op
BenchmarkUpdateAccountPeers/Large-12                   1              4022 ms/op
BenchmarkUpdateAccountPeers/Small_single-12          664                 4.034 ms/op
BenchmarkUpdateAccountPeers/Medium_single-12           4               311.5 ms/op
BenchmarkUpdateAccountPeers/Large_5-12                 1              7261 ms/op
PASS
ok      github.com/netbirdio/netbird/management/server  28.074s
Benchmark Old Time (ms) New Time (ms) Improvement (%)
Small 1.826 1.824 0.11%
Medium 139.3 53.51 61.59%
Large 15933 4022 74.76%
Small_single 5.620 4.034 28.22%
Medium_single 569.7 311.5 45.32%
Large_5 25845 7261 71.90%

Checklist

  • Is it a bug fix
  • Is a typo/documentation fix
  • Is a feature enhancement
  • It is a refactor
  • Created tests that fail without the change (if possible)
  • Extended the README / documentation, if necessary

🔄 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/netbirdio/netbird/pull/2363 **Author:** [@lixmal](https://github.com/lixmal) **Created:** 7/31/2024 **Status:** ✅ Merged **Merged:** 8/7/2024 **Merged by:** [@lixmal](https://github.com/lixmal) **Base:** `main` ← **Head:** `feature/improve-sync-performance` --- ### 📝 Commits (10+) - [`38aad0a`](https://github.com/netbirdio/netbird/commit/38aad0ac98a8525ee38bb075750a636d79096b92) Add benchmarks - [`c0bc4e1`](https://github.com/netbirdio/netbird/commit/c0bc4e1f39fe0ccbfb581fe54061fa46419c7d3b) Improve getPeerConnectionResources performance - [`f373669`](https://github.com/netbirdio/netbird/commit/f373669c6234373c4c7459b1755c2094d608a24f) Improve updateAccountPeers performance - [`651b312`](https://github.com/netbirdio/netbird/commit/651b3127225e5afc591d7ccad7bbcf117e15bc5e) Improve getPeersCustomZone performance - [`2bdfb7f`](https://github.com/netbirdio/netbird/commit/2bdfb7fdfee33bc55d9d49d41bbaa8ab5df2ef1b) Improve toSyncResponse performance - [`4d1ba0d`](https://github.com/netbirdio/netbird/commit/4d1ba0d73bfa69fdec2f0b664a0efe932d892bfe) Cache peer groups - [`e48cde8`](https://github.com/netbirdio/netbird/commit/e48cde88d6525e0e15c2aa447a04285ff4ba937c) Remove accessible peer numbers - [`3d71f18`](https://github.com/netbirdio/netbird/commit/3d71f1879521631cc7c80c8c7fb189588c6781dc) Fix missing err msg - [`a2c3a6e`](https://github.com/netbirdio/netbird/commit/a2c3a6e5ae6fc65b9fe991025eedaf714a0491f3) Fix tests and simplify custom peers zone - [`0119614`](https://github.com/netbirdio/netbird/commit/011961458d73d019ecc8e43f27c28ebdf182de95) Test toProtocolDNSConfig with cache ### 📊 Changes **22 files changed** (+1000 additions, -169 deletions) <details> <summary>View changed files</summary> 📝 `client/cmd/testutil_test.go` (+7 -1) 📝 `client/internal/engine_test.go` (+6 -1) 📝 `client/server/server_test.go` (+6 -1) 📝 `management/client/client_test.go` (+8 -1) 📝 `management/cmd/management.go` (+1 -1) 📝 `management/server/account.go` (+82 -6) 📝 `management/server/account_test.go` (+17 -4) 📝 `management/server/dns.go` (+95 -47) 📝 `management/server/dns_test.go` (+157 -1) 📝 `management/server/grpcserver.go` (+33 -40) 📝 `management/server/http/peers_handler.go` (+6 -15) 📝 `management/server/management_proto_test.go` (+6 -1) 📝 `management/server/management_test.go` (+8 -2) 📝 `management/server/nameserver_test.go` (+6 -1) 📝 `management/server/peer.go` (+37 -9) 📝 `management/server/peer/peer.go` (+1 -2) ➕ `management/server/peer/peer_test.go` (+31 -0) 📝 `management/server/peer_test.go` (+362 -0) 📝 `management/server/policy.go` (+11 -12) 📝 `management/server/route_test.go` (+6 -1) _...and 2 more files_ </details> ### 📄 Description ## Describe your changes old: ``` $ go test -run '^$' -bench=BenchmarkUpdateAccountPeers ./management/server goos: linux goarch: amd64 pkg: github.com/netbirdio/netbird/management/server cpu: 13th Gen Intel(R) Core(TM) i7-1355U BenchmarkUpdateAccountPeers/Small-12 568 1.826 ms/op BenchmarkUpdateAccountPeers/Medium-12 9 139.3 ms/op BenchmarkUpdateAccountPeers/Large-12 1 15933 ms/op BenchmarkUpdateAccountPeers/Small_single-12 198 5.620 ms/op BenchmarkUpdateAccountPeers/Medium_single-12 2 569.7 ms/op BenchmarkUpdateAccountPeers/Large_5-12 1 25845 ms/op PASS ok github.com/netbirdio/netbird/management/server 59.603s ``` new: ``` $ go test -run '^$' -bench=BenchmarkUpdateAccountPeers ./management/server goos: linux goarch: amd64 pkg: github.com/netbirdio/netbird/management/server cpu: 13th Gen Intel(R) Core(TM) i7-1355U BenchmarkUpdateAccountPeers/Small-12 649 1.824 ms/op BenchmarkUpdateAccountPeers/Medium-12 30 53.51 ms/op BenchmarkUpdateAccountPeers/Large-12 1 4022 ms/op BenchmarkUpdateAccountPeers/Small_single-12 664 4.034 ms/op BenchmarkUpdateAccountPeers/Medium_single-12 4 311.5 ms/op BenchmarkUpdateAccountPeers/Large_5-12 1 7261 ms/op PASS ok github.com/netbirdio/netbird/management/server 28.074s ``` | Benchmark | Old Time (ms) | New Time (ms) | Improvement (%) | |-----------------------------------|----------------|---------------|-----------------| | Small | 1.826 | 1.824 | 0.11% | | Medium | 139.3 | 53.51 | 61.59% | | Large | 15933 | 4022 | 74.76% | | Small_single | 5.620 | 4.034 | 28.22% | | Medium_single | 569.7 | 311.5 | 45.32% | | Large_5 | 25845 | 7261 | 71.90% | ## Issue ticket number and link ### Checklist - [ ] Is it a bug fix - [ ] Is a typo/documentation fix - [x] Is a feature enhancement - [x] It is a refactor - [ ] Created tests that fail without the change (if possible) - [ ] Extended the README / documentation, if necessary --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
saavagebueno added the pull-request label 2026-08-05 03:06:48 -04:00
Sign in to join this conversation.
No Label pull-request
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: DYNR/netbird#15025