Re-add counting of evict chunk ops and decrementing NumMemChunks

Also, modify test to expose the regression.
This commit is contained in:
beorn7 2016-10-10 16:30:10 +02:00
parent 522c933614
commit 719508752b
2 changed files with 10 additions and 0 deletions

View File

@ -252,6 +252,8 @@ func (d *Desc) MaybeEvict() bool {
panic("ChunkLastTime not populated for evicted chunk") panic("ChunkLastTime not populated for evicted chunk")
} }
d.C = nil d.C = nil
Ops.WithLabelValues(Evict).Inc()
atomic.AddInt64(&NumMemChunks, -1)
return true return true
} }

View File

@ -20,6 +20,7 @@ import (
"math/rand" "math/rand"
"os" "os"
"strconv" "strconv"
"sync/atomic"
"testing" "testing"
"testing/quick" "testing/quick"
"time" "time"
@ -1412,6 +1413,10 @@ func testEvictAndLoadChunkDescs(t *testing.T, encoding chunk.Encoding) {
Value: model.SampleValue(3.14), Value: model.SampleValue(3.14),
} }
// Sadly, chunk.NumMemChunks is a global variable. We have to reset it
// explicitly here.
atomic.StoreInt64(&chunk.NumMemChunks, 0)
s, closer := NewTestStorage(t, encoding) s, closer := NewTestStorage(t, encoding)
defer closer.Close() defer closer.Close()
@ -1441,6 +1446,9 @@ func testEvictAndLoadChunkDescs(t *testing.T, encoding chunk.Encoding) {
if oldLen <= len(series.chunkDescs) { if oldLen <= len(series.chunkDescs) {
t.Errorf("Expected number of chunkDescs to decrease, old number %d, current number %d.", oldLen, len(series.chunkDescs)) t.Errorf("Expected number of chunkDescs to decrease, old number %d, current number %d.", oldLen, len(series.chunkDescs))
} }
if int64(len(series.chunkDescs)) < atomic.LoadInt64(&chunk.NumMemChunks) {
t.Errorf("NumMemChunks is larger than number of chunk descs, number of chunk descs: %d, NumMemChunks: %d.", len(series.chunkDescs), atomic.LoadInt64(&chunk.NumMemChunks))
}
// Load everything back. // Load everything back.
it := s.preloadChunksForRange(makeFingerprintSeriesPair(s, fp), 0, 100000) it := s.preloadChunksForRange(makeFingerprintSeriesPair(s, fp), 0, 100000)