Skip to content

Commit

Permalink
chore: tunable badgerDB config params (#3027)
Browse files Browse the repository at this point in the history
  • Loading branch information
atzoum committed Feb 22, 2023
1 parent c83582c commit 0742fd7
Showing 1 changed file with 29 additions and 18 deletions.
47 changes: 29 additions & 18 deletions services/debugger/cache/internal/badger/badger.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,30 +24,40 @@ This gives a feature of hot readability as well.
func (e *Cache[E]) loadCacheConfig() {
config.RegisterDurationConfigVariable(30, &e.cleanupFreq, true, time.Second, "LiveEvent.cache.clearFreq") // default clearFreq is 15 seconds
config.RegisterIntConfigVariable(100, &e.limiter, true, 1, "LiveEvent.cache.limiter")
config.RegisterDurationConfigVariable(5, &e.ticker, false, time.Minute, "LiveEvent.cache.GCTime")
config.RegisterDurationConfigVariable(1, &e.ticker, false, time.Minute, "LiveEvent.cache.GCTime")
config.RegisterDurationConfigVariable(15, &e.queryTimeout, false, time.Second, "LiveEvent.cache.queryTimeout")
config.RegisterIntConfigVariable(3, &e.retries, false, 1, "LiveEvent.cache.retries")
config.RegisterFloat64ConfigVariable(0.5, &e.gcDiscardRatio, false, "LiveEvent.cache.gcDiscardRatio")
config.RegisterIntConfigVariable(1, &e.numMemtables, false, 1, "LiveEvent.cache.NumMemtables")
config.RegisterIntConfigVariable(0, &e.numVersionsToKeep, false, 1, "LiveEvent.cache.NumVersionsToKeep")
config.RegisterIntConfigVariable(5, &e.numLevelZeroTables, false, 1, "LiveEvent.cache.NumLevelZeroTables")
config.RegisterIntConfigVariable(10, &e.numLevelZeroTablesStall, false, 1, "LiveEvent.cache.NumLevelZeroTablesStall")
config.RegisterBoolConfigVariable(false, &e.syncWrites, false, "LiveEvent.cache.SyncWrites")
}

/*
Cache is an in-memory cache. Each key-value pair stored in this cache have a TTL and one goroutine removes the
key-value pair form the cache which is older than TTL time.
*/
type Cache[E any] struct {
plocker *rsync.PartitionLocker
limiter int
retries int
path string
origin string
done chan struct{}
closed chan struct{}
ticker time.Duration
queryTimeout time.Duration
cleanupFreq time.Duration // TTL time on badgerDB
gcDiscardRatio float64
db *badger.DB
logger logger.Logger
plocker *rsync.PartitionLocker
limiter int
retries int
path string
origin string
done chan struct{}
closed chan struct{}
ticker time.Duration
queryTimeout time.Duration
cleanupFreq time.Duration // TTL time on badgerDB
gcDiscardRatio float64
numMemtables int
numVersionsToKeep int
numLevelZeroTables int
numLevelZeroTablesStall int
syncWrites bool
db *badger.DB
logger logger.Logger
}

type badgerLogger struct {
Expand Down Expand Up @@ -147,11 +157,12 @@ func New[E any](origin string, logger logger.Logger, opts ...func(Cache[E])) (*C
WithCompression(options.None).
WithIndexCacheSize(16 << 20). // 16mb
WithNumGoroutines(1).
WithNumMemtables(0).
WithNumMemtables(e.numMemtables).
WithBlockCacheSize(0).
WithNumVersionsToKeep(0).
WithNumLevelZeroTables(1).
WithNumLevelZeroTablesStall(5)
WithNumVersionsToKeep(e.numVersionsToKeep).
WithNumLevelZeroTables(e.numLevelZeroTables).
WithNumLevelZeroTablesStall(e.numLevelZeroTablesStall).
WithSyncWrites(e.syncWrites)

e.db, err = badger.Open(badgerOpts)
if err != nil {
Expand Down

0 comments on commit 0742fd7

Please sign in to comment.