Skip to content

Commit e959b3c

Browse files
authored
peerstore: remove sync.Pool for expiringAddrs (#3093)
1 parent d80b1da commit e959b3c

File tree

2 files changed

+15
-30
lines changed

2 files changed

+15
-30
lines changed

p2p/host/peerstore/pstoremem/addr_book.go

Lines changed: 2 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -42,22 +42,6 @@ func ttlIsConnected(ttl time.Duration) bool {
4242
return ttl >= peerstore.ConnectedAddrTTL
4343
}
4444

45-
var expiringAddrPool = sync.Pool{New: func() any { return &expiringAddr{} }}
46-
47-
func getExpiringAddrs() *expiringAddr {
48-
a := expiringAddrPool.Get().(*expiringAddr)
49-
a.heapIndex = -1
50-
return a
51-
}
52-
53-
func putExpiringAddrs(ea *expiringAddr) {
54-
if ea == nil {
55-
return
56-
}
57-
*ea = expiringAddr{}
58-
expiringAddrPool.Put(ea)
59-
}
60-
6145
type peerRecordState struct {
6246
Envelope *record.Envelope
6347
Seq uint64
@@ -280,7 +264,6 @@ func (mab *memoryAddrBook) gc() {
280264
if !ok {
281265
return
282266
}
283-
putExpiringAddrs(ea)
284267
mab.maybeDeleteSignedPeerRecordUnlocked(ea.Peer)
285268
}
286269
}
@@ -382,8 +365,7 @@ func (mab *memoryAddrBook) addAddrsUnlocked(p peer.ID, addrs []ma.Multiaddr, ttl
382365
a, found := mab.addrs.FindAddr(p, addr)
383366
if !found {
384367
// not found, announce it.
385-
entry := getExpiringAddrs()
386-
*entry = expiringAddr{Addr: addr, Expiry: exp, TTL: ttl, Peer: p}
368+
entry := &expiringAddr{Addr: addr, Expiry: exp, TTL: ttl, Peer: p}
387369
mab.addrs.Insert(entry)
388370
mab.subManager.BroadcastAddr(p, addr)
389371
} else {
@@ -433,7 +415,6 @@ func (mab *memoryAddrBook) SetAddrs(p peer.ID, addrs []ma.Multiaddr, ttl time.Du
433415
if ttl > 0 {
434416
if a.IsConnected() && !ttlIsConnected(ttl) && mab.addrs.NumUnconnectedAddrs() >= mab.maxUnconnectedAddrs {
435417
mab.addrs.Delete(a)
436-
putExpiringAddrs(a)
437418
} else {
438419
a.Addr = addr
439420
a.Expiry = exp
@@ -443,15 +424,13 @@ func (mab *memoryAddrBook) SetAddrs(p peer.ID, addrs []ma.Multiaddr, ttl time.Du
443424
}
444425
} else {
445426
mab.addrs.Delete(a)
446-
putExpiringAddrs(a)
447427
}
448428
} else {
449429
if ttl > 0 {
450430
if !ttlIsConnected(ttl) && mab.addrs.NumUnconnectedAddrs() >= mab.maxUnconnectedAddrs {
451431
continue
452432
}
453-
entry := getExpiringAddrs()
454-
*entry = expiringAddr{Addr: addr, Expiry: exp, TTL: ttl, Peer: p}
433+
entry := &expiringAddr{Addr: addr, Expiry: exp, TTL: ttl, Peer: p}
455434
mab.addrs.Insert(entry)
456435
mab.subManager.BroadcastAddr(p, addr)
457436
}
@@ -472,12 +451,10 @@ func (mab *memoryAddrBook) UpdateAddrs(p peer.ID, oldTTL time.Duration, newTTL t
472451
if oldTTL == a.TTL {
473452
if newTTL == 0 {
474453
mab.addrs.Delete(a)
475-
putExpiringAddrs(a)
476454
} else {
477455
// We are over limit, drop these addresses.
478456
if ttlIsConnected(oldTTL) && !ttlIsConnected(newTTL) && mab.addrs.NumUnconnectedAddrs() >= mab.maxUnconnectedAddrs {
479457
mab.addrs.Delete(a)
480-
putExpiringAddrs(a)
481458
} else {
482459
a.TTL = newTTL
483460
a.Expiry = exp
@@ -541,7 +518,6 @@ func (mab *memoryAddrBook) ClearAddrs(p peer.ID) {
541518
delete(mab.signedPeerRecords, p)
542519
for _, a := range mab.addrs.Addrs[p] {
543520
mab.addrs.Delete(a)
544-
putExpiringAddrs(a)
545521
}
546522
}
547523

p2p/host/peerstore/test/benchmarks_suite.go

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,20 @@ func BenchmarkPeerstore(b *testing.B, factory PeerstoreFactory, variant string)
3636
ps, cleanup := factory()
3737
defer cleanup()
3838
b.ResetTimer()
39+
itersPerBM := 10
3940
for i := 0; i < b.N; i++ {
40-
pp := peers[i%N]
41-
ps.AddAddrs(pp.ID, pp.Addr, pstore.RecentlyConnectedAddrTTL)
42-
ps.Addrs(pp.ID)
43-
ps.ClearAddrs(pp.ID)
41+
for j := 0; j < itersPerBM; j++ {
42+
pp := peers[(i+j)%N]
43+
ps.AddAddrs(pp.ID, pp.Addr, pstore.RecentlyConnectedAddrTTL)
44+
}
45+
for j := 0; j < itersPerBM; j++ {
46+
pp := peers[(i+j)%N]
47+
ps.Addrs(pp.ID)
48+
}
49+
for j := 0; j < itersPerBM; j++ {
50+
pp := peers[(i+j)%N]
51+
ps.ClearAddrs(pp.ID)
52+
}
4453
}
4554
})
4655

0 commit comments

Comments
 (0)