Skip to content

Commit 75b1261

Browse files
committed
storage: add storage.tombstone_dense_compaction_threshold setting
Add a cluster setting to control the tombstone-dense compaction threshold. Fixes: #155715 Release note: None
1 parent d1cef1a commit 75b1261

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

pkg/storage/pebble.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -524,6 +524,14 @@ var baselineDeletionRate = settings.RegisterIntSetting(
524524
settings.NonNegativeInt,
525525
)
526526

527+
var tombstoneDenseCompactionThreshold = settings.RegisterIntSetting(
528+
settings.ApplicationLevel,
529+
"storage.tombstone_dense_compaction_threshold",
530+
"percentage of tombstone-dense data blocks that trigger a compaction (0 = disabled)",
531+
10, // 10%
532+
settings.IntInRange(0, 100),
533+
)
534+
527535
// EngineComparer is a pebble.Comparer object that implements MVCC-specific
528536
// comparator settings for use with Pebble.
529537
var EngineComparer = func() pebble.Comparer {
@@ -962,6 +970,9 @@ func newPebble(ctx context.Context, cfg engineConfig) (p *Pebble, err error) {
962970
cfg.opts.TargetByteDeletionRate = func() int {
963971
return int(baselineDeletionRate.Get(&cfg.settings.SV))
964972
}
973+
cfg.opts.Experimental.TombstoneDenseCompactionThreshold = func() float64 {
974+
return 0.01 * float64(tombstoneDenseCompactionThreshold.Get(&cfg.settings.SV))
975+
}
965976
if cfg.opts.Experimental.UseDeprecatedCompensatedScore == nil {
966977
cfg.opts.Experimental.UseDeprecatedCompensatedScore = func() bool {
967978
return useDeprecatedCompensatedScore.Get(&cfg.settings.SV)

0 commit comments

Comments
 (0)