|
52 | 52 | errInvalidShardingStrategy = errors.New("invalid sharding strategy") |
53 | 53 | errInvalidTenantShardSize = errors.New("invalid tenant shard size, the value must be greater than 0") |
54 | 54 |
|
55 | | - DefaultBlocksGrouperFactory = func(ctx context.Context, cfg Config, bkt objstore.InstrumentedBucket, logger log.Logger, reg prometheus.Registerer, blocksMarkedForDeletion, blocksMarkedForNoCompaction, garbageCollectedBlocks prometheus.Counter, _ prometheus.Gauge, _ prometheus.Counter, _ prometheus.Counter, _ *ring.Ring, _ *ring.Lifecycler, _ Limits, _ string) compact.Grouper { |
| 55 | + DefaultBlocksGrouperFactory = func(ctx context.Context, cfg Config, bkt objstore.InstrumentedBucket, logger log.Logger, reg prometheus.Registerer, blocksMarkedForDeletion, blocksMarkedForNoCompaction, garbageCollectedBlocks prometheus.Counter, _ prometheus.Gauge, _ prometheus.Counter, _ prometheus.Counter, _ *ring.Ring, _ *ring.Lifecycler, _ Limits, _ string, _ *compact.GatherNoCompactionMarkFilter) compact.Grouper { |
56 | 56 | return compact.NewDefaultGrouper( |
57 | 57 | logger, |
58 | 58 | bkt, |
|
67 | 67 | cfg.BlocksFetchConcurrency) |
68 | 68 | } |
69 | 69 |
|
70 | | - ShuffleShardingGrouperFactory = func(ctx context.Context, cfg Config, bkt objstore.InstrumentedBucket, logger log.Logger, reg prometheus.Registerer, blocksMarkedForDeletion, blocksMarkedForNoCompaction, garbageCollectedBlocks prometheus.Counter, remainingPlannedCompactions prometheus.Gauge, blockVisitMarkerReadFailed prometheus.Counter, blockVisitMarkerWriteFailed prometheus.Counter, ring *ring.Ring, ringLifecycle *ring.Lifecycler, limits Limits, userID string) compact.Grouper { |
| 70 | + ShuffleShardingGrouperFactory = func(ctx context.Context, cfg Config, bkt objstore.InstrumentedBucket, logger log.Logger, reg prometheus.Registerer, blocksMarkedForDeletion, blocksMarkedForNoCompaction, garbageCollectedBlocks prometheus.Counter, remainingPlannedCompactions prometheus.Gauge, blockVisitMarkerReadFailed prometheus.Counter, blockVisitMarkerWriteFailed prometheus.Counter, ring *ring.Ring, ringLifecycle *ring.Lifecycler, limits Limits, userID string, noCompactionMarkFilter *compact.GatherNoCompactionMarkFilter) compact.Grouper { |
71 | 71 | return NewShuffleShardingGrouper( |
72 | 72 | ctx, |
73 | 73 | logger, |
|
91 | 91 | cfg.CompactionConcurrency, |
92 | 92 | cfg.BlockVisitMarkerTimeout, |
93 | 93 | blockVisitMarkerReadFailed, |
94 | | - blockVisitMarkerWriteFailed) |
| 94 | + blockVisitMarkerWriteFailed, |
| 95 | + noCompactionMarkFilter.NoCompactMarkedBlocks) |
95 | 96 | } |
96 | 97 |
|
97 | 98 | DefaultBlocksCompactorFactory = func(ctx context.Context, cfg Config, logger log.Logger, reg prometheus.Registerer) (compact.Compactor, PlannerFactory, error) { |
@@ -138,6 +139,7 @@ type BlocksGrouperFactory func( |
138 | 139 | ringLifecycler *ring.Lifecycler, |
139 | 140 | limit Limits, |
140 | 141 | userID string, |
| 142 | + noCompactionMarkFilter *compact.GatherNoCompactionMarkFilter, |
141 | 143 | ) compact.Grouper |
142 | 144 |
|
143 | 145 | // BlocksCompactorFactory builds and returns the compactor and planner to use to compact a tenant's blocks. |
@@ -814,7 +816,7 @@ func (c *Compactor) compactUser(ctx context.Context, userID string) error { |
814 | 816 | compactor, err := compact.NewBucketCompactor( |
815 | 817 | ulogger, |
816 | 818 | syncer, |
817 | | - c.blocksGrouperFactory(currentCtx, c.compactorCfg, bucket, ulogger, reg, c.blocksMarkedForDeletion, c.blocksMarkedForNoCompaction, c.garbageCollectedBlocks, c.remainingPlannedCompactions, c.blockVisitMarkerReadFailed, c.blockVisitMarkerWriteFailed, c.ring, c.ringLifecycler, c.limits, userID), |
| 819 | + c.blocksGrouperFactory(currentCtx, c.compactorCfg, bucket, ulogger, reg, c.blocksMarkedForDeletion, c.blocksMarkedForNoCompaction, c.garbageCollectedBlocks, c.remainingPlannedCompactions, c.blockVisitMarkerReadFailed, c.blockVisitMarkerWriteFailed, c.ring, c.ringLifecycler, c.limits, userID, noCompactMarkerFilter), |
818 | 820 | c.blocksPlannerFactory(currentCtx, bucket, ulogger, c.compactorCfg, noCompactMarkerFilter, c.ringLifecycler, c.blockVisitMarkerReadFailed, c.blockVisitMarkerWriteFailed), |
819 | 821 | c.blocksCompactor, |
820 | 822 | path.Join(c.compactorCfg.DataDir, "compact"), |
|
0 commit comments