lib/mergeset: tune lifetime for entries inside block caches

This should reduce memory usage in general case without significant CPU usage increase
This commit is contained in:
Aliaksandr Valialkin 2021-02-16 18:10:20 +02:00
parent 2824856691
commit 458c89324d
2 changed files with 6 additions and 6 deletions

View file

@ -221,8 +221,8 @@ func (idxbc *indexBlockCache) cleanByTimeout() {
currentTime := fasttime.UnixTimestamp()
idxbc.mu.Lock()
for k, idxbe := range idxbc.m {
// Delete items accessed more than two minutes ago.
if currentTime-atomic.LoadUint64(&idxbe.lastAccessTime) > 2*60 {
// Delete items accessed more than 90 seconds ago.
if currentTime-atomic.LoadUint64(&idxbe.lastAccessTime) > 90 {
// do not call putIndexBlock(ibxbc.m[k]), since it
// may be used by concurrent goroutines.
delete(idxbc.m, k)
@ -375,8 +375,8 @@ func (ibc *inmemoryBlockCache) cleanByTimeout() {
currentTime := fasttime.UnixTimestamp()
ibc.mu.Lock()
for k, ibe := range ibc.m {
// Delete items accessed more than a two minutes ago.
if currentTime-atomic.LoadUint64(&ibe.lastAccessTime) > 2*60 {
// Delete items accessed more than 90 seconds ago.
if currentTime-atomic.LoadUint64(&ibe.lastAccessTime) > 90 {
// do not call putInmemoryBlock(ibc.m[k]), since it
// may be used by concurrent goroutines.
delete(ibc.m, k)

View file

@ -225,8 +225,8 @@ func (ibc *indexBlockCache) cleanByTimeout() {
currentTime := fasttime.UnixTimestamp()
ibc.mu.Lock()
for k, ibe := range ibc.m {
// Delete items accessed more than two minutes ago.
if currentTime-atomic.LoadUint64(&ibe.lastAccessTime) > 2*60 {
// Delete items accessed more than 90 seconds ago.
if currentTime-atomic.LoadUint64(&ibe.lastAccessTime) > 90 {
delete(ibc.m, k)
}
}