From 1ea8d48fc4d9448e6ccba86d64dabb9969b4b3dc Mon Sep 17 00:00:00 2001 From: Sandeep Sukhani Date: Mon, 7 Jul 2025 10:51:36 +0530 Subject: [PATCH] chore: expose tables manager interface from compactor (#18344) --- pkg/compactor/compactor.go | 4 ++++ pkg/compactor/tables_manager.go | 10 ++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/pkg/compactor/compactor.go b/pkg/compactor/compactor.go index bebe05972f..8c39479e8b 100644 --- a/pkg/compactor/compactor.go +++ b/pkg/compactor/compactor.go @@ -580,6 +580,10 @@ func (c *Compactor) RegisterIndexCompactor(indexType string, indexCompactor Inde c.indexCompactors[indexType] = indexCompactor } +func (c *Compactor) TablesManager() TablesManager { + return c.tablesManager +} + type expirationChecker struct { retentionExpiryChecker retention.ExpirationChecker deletionExpiryChecker retention.ExpirationChecker diff --git a/pkg/compactor/tables_manager.go b/pkg/compactor/tables_manager.go index e026e26bf3..088ec7f13a 100644 --- a/pkg/compactor/tables_manager.go +++ b/pkg/compactor/tables_manager.go @@ -16,6 +16,12 @@ import ( util_log "github.com/grafana/loki/v3/pkg/util/log" ) +type TablesManager interface { + CompactTable(ctx context.Context, tableName string, applyRetention bool) error + ApplyStorageUpdates(ctx context.Context, iterator deletion.StorageUpdatesIterator) error + IterateTables(ctx context.Context, callback func(string, deletion.Table) error) (err error) +} + type tablesManager struct { cfg Config expirationChecker retention.ExpirationChecker @@ -273,7 +279,7 @@ func (c *tablesManager) runCompaction(ctx context.Context, applyRetention bool) } level.Info(util_log.Logger).Log("msg", "compacting table", "table-name", tableName) - err = c.compactTable(ctx, tableName, applyRetention) + err = c.CompactTable(ctx, tableName, applyRetention) if err != nil { return } @@ -313,7 +319,7 @@ func (c *tablesManager) runCompaction(ctx context.Context, applyRetention bool) return ctx.Err() } -func (c *tablesManager) compactTable(ctx context.Context, tableName string, applyRetention bool) error { +func (c *tablesManager) CompactTable(ctx context.Context, tableName string, applyRetention bool) error { schemaCfg, ok := SchemaPeriodForTable(c.schemaConfig, tableName) if !ok { level.Error(util_log.Logger).Log("msg", "skipping compaction since we can't find schema for table", "table", tableName)