MCPcopy Index your code
hub / github.com/cortexproject/cortex / NewCompactor

Function NewCompactor

pkg/compactor/compactor.go:465–512  ·  view source on GitHub ↗

NewCompactor makes a new Compactor.

(compactorCfg Config, storageCfg cortex_tsdb.BlocksStorageConfig, logger log.Logger, registerer prometheus.Registerer, limits *validation.Overrides, ingestionReplicationFactor int)

Source from the content-addressed store, hash-verified

463
464// NewCompactor makes a new Compactor.
465func NewCompactor(compactorCfg Config, storageCfg cortex_tsdb.BlocksStorageConfig, logger log.Logger, registerer prometheus.Registerer, limits *validation.Overrides, ingestionReplicationFactor int) (*Compactor, error) {
466 bucketClientFactory := func(ctx context.Context) (objstore.InstrumentedBucket, error) {
467 return bucket.NewClient(ctx, storageCfg.Bucket, nil, "compactor", logger, registerer)
468 }
469
470 blocksGrouperFactory := compactorCfg.BlocksGrouperFactory
471 if blocksGrouperFactory == nil {
472 if compactorCfg.ShardingStrategy == util.ShardingStrategyShuffle {
473 blocksGrouperFactory = ShuffleShardingGrouperFactory
474 } else {
475 blocksGrouperFactory = DefaultBlocksGrouperFactory
476 }
477 }
478
479 blocksCompactorFactory := compactorCfg.BlocksCompactorFactory
480 if blocksCompactorFactory == nil {
481 if compactorCfg.ShardingStrategy == util.ShardingStrategyShuffle {
482 blocksCompactorFactory = ShuffleShardingBlocksCompactorFactory
483 } else {
484 blocksCompactorFactory = DefaultBlocksCompactorFactory
485 }
486 }
487
488 var blockDeletableCheckerFactory BlockDeletableCheckerFactory
489 if compactorCfg.ShardingStrategy == util.ShardingStrategyShuffle && compactorCfg.CompactionStrategy == util.CompactionStrategyPartitioning {
490 blockDeletableCheckerFactory = PartitionCompactionBlockDeletableCheckerFactory
491 } else {
492 blockDeletableCheckerFactory = DefaultBlockDeletableCheckerFactory
493 }
494
495 var compactionLifecycleCallbackFactory CompactionLifecycleCallbackFactory
496 if compactorCfg.ShardingStrategy == util.ShardingStrategyShuffle && compactorCfg.CompactionStrategy == util.CompactionStrategyPartitioning {
497 compactionLifecycleCallbackFactory = ShardedCompactionLifecycleCallbackFactory
498 } else {
499 compactionLifecycleCallbackFactory = DefaultCompactionLifecycleCallbackFactory
500 }
501
502 if ingestionReplicationFactor <= 0 {
503 ingestionReplicationFactor = 1
504 }
505
506 cortexCompactor, err := newCompactor(compactorCfg, storageCfg, logger, registerer, bucketClientFactory, blocksGrouperFactory, blocksCompactorFactory, blockDeletableCheckerFactory, compactionLifecycleCallbackFactory, limits, ingestionReplicationFactor)
507 if err != nil {
508 return nil, errors.Wrap(err, "failed to create Cortex blocks compactor")
509 }
510
511 return cortexCompactor, nil
512}
513
514func newCompactor(
515 compactorCfg Config,

Callers 1

initCompactorMethod · 0.92

Calls 3

NewClientFunction · 0.92
newCompactorFunction · 0.85
WrapMethod · 0.65

Tested by

no test coverage detected