From ae91a6883c8f5c6f2800594d9b93223d2d3ec47c Mon Sep 17 00:00:00 2001 From: Aliaksandr Valialkin Date: Wed, 4 Nov 2020 16:41:59 +0200 Subject: [PATCH] lib/{storage,mergeset}: clean cached index blocks and inmemory blocks more aggressively Previously such blocks were cleaned after they weren't accessed during 10 minutes. Now they are cleaned after one minute of missing access. This should reduce memory usage in general case. --- lib/mergeset/part.go | 8 ++++---- lib/storage/part.go | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/mergeset/part.go b/lib/mergeset/part.go index a1033479a..86bbc5bb8 100644 --- a/lib/mergeset/part.go +++ b/lib/mergeset/part.go @@ -231,8 +231,8 @@ func (idxbc *indexBlockCache) cleanByTimeout() { currentTime := fasttime.UnixTimestamp() idxbc.mu.Lock() for k, idxbe := range idxbc.m { - // Delete items accessed more than 10 minutes ago. - if currentTime-atomic.LoadUint64(&idxbe.lastAccessTime) > 10*60 { + // Delete items accessed more than a minute ago. + if currentTime-atomic.LoadUint64(&idxbe.lastAccessTime) > 60 { delete(idxbc.m, k) } } @@ -378,8 +378,8 @@ func (ibc *inmemoryBlockCache) cleanByTimeout() { currentTime := fasttime.UnixTimestamp() ibc.mu.Lock() for k, ibe := range ibc.m { - // Delete items accessed more than 10 minutes ago. - if currentTime-atomic.LoadUint64(&ibe.lastAccessTime) > 10*60 { + // Delete items accessed more than a minute ago. + if currentTime-atomic.LoadUint64(&ibe.lastAccessTime) > 60 { delete(ibc.m, k) } } diff --git a/lib/storage/part.go b/lib/storage/part.go index 1c8fa54ae..2eb62b180 100644 --- a/lib/storage/part.go +++ b/lib/storage/part.go @@ -232,8 +232,8 @@ func (ibc *indexBlockCache) cleanByTimeout() { currentTime := fasttime.UnixTimestamp() ibc.mu.Lock() for k, ibe := range ibc.m { - // Delete items accessed more than 10 minutes ago. - if currentTime-atomic.LoadUint64(&ibe.lastAccessTime) > 10*60 { + // Delete items accessed more than a minute ago. + if currentTime-atomic.LoadUint64(&ibe.lastAccessTime) > 60 { delete(ibc.m, k) } }