Skip to content

Commit

Permalink
Fix delete cancellation timeout (#6285)
Browse files Browse the repository at this point in the history
  • Loading branch information
MasslessParticle authored Jun 3, 2022
1 parent b757753 commit 69eabfc
Showing 1 changed file with 27 additions and 12 deletions.
39 changes: 27 additions & 12 deletions pkg/storage/stores/shipper/compactor/compactor.go
Original file line number Diff line number Diff line change
Expand Up @@ -233,20 +233,9 @@ func (c *Compactor) init(storageConfig storage.Config, schemaConfig config.Schem

switch c.deleteMode {
case deletion.WholeStreamDeletion, deletion.FilterOnly, deletion.FilterAndDelete:
deletionWorkDir := filepath.Join(c.cfg.WorkingDirectory, "deletion")

c.deleteRequestsStore, err = deletion.NewDeleteStore(deletionWorkDir, c.indexStorageClient)
if err != nil {
if err := c.initDeletes(r, limits); err != nil {
return err
}
c.DeleteRequestsHandler = deletion.NewDeleteRequestHandler(c.deleteRequestsStore, time.Hour, r)
c.deleteRequestsManager = deletion.NewDeleteRequestsManager(
c.deleteRequestsStore,
c.cfg.DeleteRequestCancelPeriod,
r,
c.deleteMode,
)
c.expirationChecker = newExpirationChecker(retention.NewExpirationChecker(limits), c.deleteRequestsManager)
default:
c.expirationChecker = newExpirationChecker(
retention.NewExpirationChecker(limits),
Expand All @@ -264,6 +253,32 @@ func (c *Compactor) init(storageConfig storage.Config, schemaConfig config.Schem
return nil
}

func (c *Compactor) initDeletes(r prometheus.Registerer, limits retention.Limits) error {
deletionWorkDir := filepath.Join(c.cfg.WorkingDirectory, "deletion")

store, err := deletion.NewDeleteStore(deletionWorkDir, c.indexStorageClient)
if err != nil {
return err
}
c.deleteRequestsStore = store

c.DeleteRequestsHandler = deletion.NewDeleteRequestHandler(
c.deleteRequestsStore,
c.cfg.DeleteRequestCancelPeriod,
r,
)

c.deleteRequestsManager = deletion.NewDeleteRequestsManager(
c.deleteRequestsStore,
c.cfg.DeleteRequestCancelPeriod,
r,
c.deleteMode,
)

c.expirationChecker = newExpirationChecker(retention.NewExpirationChecker(limits), c.deleteRequestsManager)
return nil
}

func (c *Compactor) starting(ctx context.Context) (err error) {
// In case this function will return error we want to unregister the instance
// from the ring. We do it ensuring dependencies are gracefully stopped if they
Expand Down

0 comments on commit 69eabfc

Please sign in to comment.