tailscale/types
James Tucker f7ad04bea4
derp: intern key.NodePublic across the server
Consistently interning the NodePublic's throughout DERP, particularly
inside the maps reduces memory usage and reduces lookup costs in the
associated data structures.

It is not clear exactly how efficient the weak pointers will be in
practice, but estimating this using derpstress with 10k conns pushing
40kpps in each direction, this is patch grows heap at approximately half
the rate vs.  the old code and has fewer instances of long stalls that
trigger i/o timeouts for the clients.

Updates tailscale/corp#24485

Signed-off-by: James Tucker <james@tailscale.com>
2024-11-15 16:18:36 -08:00
..
appctype appc,ipn/ipnlocal,types/appctype: implement control provided routes 2024-01-17 14:40:09 -08:00
bools types/bools: add Compare to compare boolean values (#13792) 2024-10-11 13:12:18 -07:00
dnstype cli: add tailscale dns query (#13368) 2024-09-24 20:18:45 +00:00
empty all: update copyright and license headers 2023-01-27 15:36:29 -08:00
flagtype all: update copyright and license headers 2023-01-27 15:36:29 -08:00
ipproto all: use Go 1.22 range-over-int 2024-04-16 15:32:38 -07:00
key derp: intern key.NodePublic across the server 2024-11-15 16:18:36 -08:00
lazy types/lazy: add DeferredInit type 2024-10-07 15:43:22 -05:00
logger all: use Go 1.22 range-over-int 2024-04-16 15:32:38 -07:00
logid types/logid: add Add method (#12478) 2024-06-17 16:03:44 -07:00
netlogtype all: update copyright and license headers 2023-01-27 15:36:29 -08:00
netmap all: use iterators over slice views more 2024-11-11 13:22:34 -08:00
nettype wgengine/magicsock, types/nettype, etc: finish ReadFromUDPAddrPort netip migration 2023-04-15 13:40:15 -07:00
opt util/syspolicy/setting: make setting.RawItem JSON-marshallable 2024-10-30 12:50:29 -05:00
persist types/persist: remove unused field Persist.Provider 2024-04-21 10:48:25 -07:00
prefs types/prefs: add a package containing generic preference types 2024-08-21 12:44:38 -05:00
preftype cmd/tailscaled,*: add start of configuration file support 2023-10-16 10:40:27 -07:00
ptr all: update copyright and license headers 2023-01-27 15:36:29 -08:00
result types/result, util/lineiter: add package for a result type, use it 2024-11-05 10:27:52 -08:00
structs all: update copyright and license headers 2023-01-27 15:36:29 -08:00
tkatype types/tkatype: add test for MarshaledSignature's JSON format 2023-08-19 19:34:18 -07:00
views types/views: add iterators to the three Map view types 2024-10-09 10:00:29 -07:00