|
|
@ -18,6 +18,7 @@ import ( |
|
|
|
"container/list" |
|
|
|
"container/list" |
|
|
|
"fmt" |
|
|
|
"fmt" |
|
|
|
"math" |
|
|
|
"math" |
|
|
|
|
|
|
|
"sync" |
|
|
|
"sync/atomic" |
|
|
|
"sync/atomic" |
|
|
|
"time" |
|
|
|
"time" |
|
|
|
|
|
|
|
|
|
|
@ -124,6 +125,7 @@ type memorySeriesStorage struct { |
|
|
|
numChunksToPersist int64 // The number of chunks waiting for persistence.
|
|
|
|
numChunksToPersist int64 // The number of chunks waiting for persistence.
|
|
|
|
maxChunksToPersist int // If numChunksToPersist reaches this threshold, ingestion will be throttled.
|
|
|
|
maxChunksToPersist int // If numChunksToPersist reaches this threshold, ingestion will be throttled.
|
|
|
|
rushed bool // Whether the storage is in rushed mode.
|
|
|
|
rushed bool // Whether the storage is in rushed mode.
|
|
|
|
|
|
|
|
rushedMtx sync.Mutex // Protects entering and exiting rushed mode.
|
|
|
|
throttled chan struct{} // This chan is sent to whenever NeedsThrottling() returns true (for logging).
|
|
|
|
throttled chan struct{} // This chan is sent to whenever NeedsThrottling() returns true (for logging).
|
|
|
|
|
|
|
|
|
|
|
|
fpLocker *fingerprintLocker |
|
|
|
fpLocker *fingerprintLocker |
|
|
@ -1248,6 +1250,9 @@ func (s *memorySeriesStorage) incNumChunksToPersist(by int) { |
|
|
|
// files should not by synced anymore provided the user has specified the
|
|
|
|
// files should not by synced anymore provided the user has specified the
|
|
|
|
// adaptive sync strategy.
|
|
|
|
// adaptive sync strategy.
|
|
|
|
func (s *memorySeriesStorage) calculatePersistenceUrgencyScore() float64 { |
|
|
|
func (s *memorySeriesStorage) calculatePersistenceUrgencyScore() float64 { |
|
|
|
|
|
|
|
s.rushedMtx.Lock() |
|
|
|
|
|
|
|
defer s.rushedMtx.Unlock() |
|
|
|
|
|
|
|
|
|
|
|
var ( |
|
|
|
var ( |
|
|
|
chunksToPersist = float64(s.getNumChunksToPersist()) |
|
|
|
chunksToPersist = float64(s.getNumChunksToPersist()) |
|
|
|
maxChunksToPersist = float64(s.maxChunksToPersist) |
|
|
|
maxChunksToPersist = float64(s.maxChunksToPersist) |
|
|
|