Skip to content

Commit cc5a420

Browse files
committed
save
1 parent 76b5e17 commit cc5a420

File tree

1 file changed

+6
-13
lines changed

1 file changed

+6
-13
lines changed

db/state/cache.go

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,7 @@ type u128 struct{ hi, lo uint64 } //nolint
1919
type u192 struct{ hi, lo, ext uint64 } //nolint
2020

2121
type DomainGetFromFileCache struct {
22-
sync.RWMutex
23-
*freelru.LRU[uint64, domainGetFromFileCacheItem]
22+
*freelru.ShardedLRU[uint64, domainGetFromFileCacheItem]
2423
enabled, trace bool
2524
limit uint32
2625
}
@@ -33,37 +32,31 @@ type domainGetFromFileCacheItem struct {
3332

3433
var (
3534
domainGetFromFileCacheLimit = uint32(dbg.EnvInt("D_LRU", 1_000_000))
36-
domainGetFromFileCacheTrace = dbg.EnvBool("D_LRU_TRACE", false)
35+
domainGetFromFileCacheTrace = dbg.EnvBool("D_LRU_TRACE", true)
3736
domainGetFromFileCacheEnabled = dbg.EnvBool("D_LRU_ENABLED", true)
3837
)
3938

4039
func NewDomainGetFromFileCache(limit uint32) *DomainGetFromFileCache {
41-
c, err := freelru.New[uint64, domainGetFromFileCacheItem](limit, u64noHash)
40+
c, err := freelru.NewSharded[uint64, domainGetFromFileCacheItem](limit, u64noHash)
4241
if err != nil {
4342
panic(err)
4443
}
45-
return &DomainGetFromFileCache{LRU: c, enabled: domainGetFromFileCacheEnabled, trace: domainGetFromFileCacheTrace, limit: limit}
44+
return &DomainGetFromFileCache{ShardedLRU: c, enabled: domainGetFromFileCacheEnabled, trace: domainGetFromFileCacheTrace, limit: limit}
4645
}
4746

4847
func (c *DomainGetFromFileCache) Add(key uint64, value domainGetFromFileCacheItem) (evicted bool) {
49-
c.Lock()
50-
defer c.Unlock()
51-
return c.LRU.Add(key, value)
48+
return c.ShardedLRU.Add(key, value)
5249
}
5350

5451
func (c *DomainGetFromFileCache) Get(key uint64) (value domainGetFromFileCacheItem, ok bool) {
55-
c.Lock() // get upates cache vars
56-
defer c.Unlock()
57-
return c.LRU.Get(key)
52+
return c.ShardedLRU.Get(key)
5853
}
5954

6055
func (c *DomainGetFromFileCache) SetTrace(v bool) { c.trace = v }
6156
func (c *DomainGetFromFileCache) LogStats(dt kv.Domain) {
6257
if c == nil {
6358
return
6459
}
65-
c.RLock()
66-
defer c.RUnlock()
6760
if !c.enabled || !c.trace {
6861
return
6962
}

0 commit comments

Comments
 (0)