Skip to content

Commit 5dc04ff

Browse files
authored
Merge pull request #1566 from cortexproject/remove-claim-on-rollout-flag
Remove claim-on-rollout option
2 parents f41ce81 + ea76f05 commit 5dc04ff

File tree

5 files changed

+15
-14
lines changed

5 files changed

+15
-14
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212
## 0.1.0 / 2019-08-07
1313

14+
* [CHANGE] --claim-on-rollout flag deprecated; feature is now always on #1566
1415
* [CHANGE] HA Tracker flags were renamed to provide more clarity #1465
1516
* `distributor.accept-ha-labels` is now `distributor.ha-tracker.enable`
1617
* `distributor.accept-ha-samples` is now `distributor.ha-tracker.enable-for-all-users`

pkg/ingester/lifecycle_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ func defaultIngesterTestConfig() Config {
4141
cfg.LifecyclerConfig.Addr = "localhost"
4242
cfg.LifecyclerConfig.ID = "localhost"
4343
cfg.LifecyclerConfig.FinalSleep = 0
44+
cfg.MaxTransferRetries = -1
4445
return cfg
4546
}
4647

@@ -94,8 +95,8 @@ func TestIngesterTransfer(t *testing.T) {
9495
cfg1 := defaultIngesterTestConfig()
9596
cfg1.LifecyclerConfig.ID = "ingester1"
9697
cfg1.LifecyclerConfig.Addr = "ingester1"
97-
cfg1.LifecyclerConfig.ClaimOnRollout = true
9898
cfg1.LifecyclerConfig.JoinAfter = 0 * time.Second
99+
cfg1.MaxTransferRetries = 10
99100
ing1, err := New(cfg1, defaultClientTestConfig(), limits, nil, nil)
100101
require.NoError(t, err)
101102

@@ -184,7 +185,6 @@ func TestIngesterBadTransfer(t *testing.T) {
184185
cfg := defaultIngesterTestConfig()
185186
cfg.LifecyclerConfig.ID = "ingester1"
186187
cfg.LifecyclerConfig.Addr = "ingester1"
187-
cfg.LifecyclerConfig.ClaimOnRollout = true
188188
cfg.LifecyclerConfig.JoinAfter = 100 * time.Second
189189
ing, err := New(cfg, defaultClientTestConfig(), limits, nil, nil)
190190
require.NoError(t, err)

pkg/ingester/transfer.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,9 @@ func fromWireChunks(wireChunks []client.Chunk) ([]*desc, error) {
184184
// TransferOut finds an ingester in PENDING state and transfers our chunks to it.
185185
// Called as part of the ingester shutdown process.
186186
func (i *Ingester) TransferOut(ctx context.Context) error {
187+
if i.cfg.MaxTransferRetries < 0 {
188+
return fmt.Errorf("transfers disabled")
189+
}
187190
backoff := util.NewBackoff(ctx, util.BackoffConfig{
188191
MinBackoff: 100 * time.Millisecond,
189192
MaxBackoff: 5 * time.Second,

pkg/ring/lifecycler.go

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ type LifecyclerConfig struct {
4848
HeartbeatPeriod time.Duration `yaml:"heartbeat_period,omitempty"`
4949
JoinAfter time.Duration `yaml:"join_after,omitempty"`
5050
MinReadyDuration time.Duration `yaml:"min_ready_duration,omitempty"`
51-
ClaimOnRollout bool `yaml:"claim_on_rollout,omitempty"`
51+
UnusedFlag bool `yaml:"claim_on_rollout,omitempty"` // DEPRECATED - left for backwards-compatibility
5252
NormaliseTokens bool `yaml:"normalise_tokens,omitempty"`
5353
InfNames []string `yaml:"interface_names"`
5454
FinalSleep time.Duration `yaml:"final_sleep"`
@@ -79,7 +79,7 @@ func (cfg *LifecyclerConfig) RegisterFlagsWithPrefix(prefix string, f *flag.Flag
7979
f.DurationVar(&cfg.HeartbeatPeriod, prefix+"heartbeat-period", 5*time.Second, "Period at which to heartbeat to consul.")
8080
f.DurationVar(&cfg.JoinAfter, prefix+"join-after", 0*time.Second, "Period to wait for a claim from another member; will join automatically after this.")
8181
f.DurationVar(&cfg.MinReadyDuration, prefix+"min-ready-duration", 1*time.Minute, "Minimum duration to wait before becoming ready. This is to work around race conditions with ingesters exiting and updating the ring.")
82-
f.BoolVar(&cfg.ClaimOnRollout, prefix+"claim-on-rollout", false, "Send chunks to PENDING ingesters on exit.")
82+
flagext.DeprecatedFlag(f, prefix+"claim-on-rollout", "DEPRECATED. This feature is no longer optional.")
8383
f.BoolVar(&cfg.NormaliseTokens, prefix+"normalise-tokens", false, "Store tokens in a normalised fashion to reduce allocations.")
8484
f.DurationVar(&cfg.FinalSleep, prefix+"final-sleep", 30*time.Second, "Duration to sleep for before exiting, to ensure metrics are scraped.")
8585

@@ -474,15 +474,13 @@ func (i *Lifecycler) changeState(ctx context.Context, state IngesterState) error
474474

475475
func (i *Lifecycler) processShutdown(ctx context.Context) {
476476
flushRequired := true
477-
if i.cfg.ClaimOnRollout {
478-
transferStart := time.Now()
479-
if err := i.flushTransferer.TransferOut(ctx); err != nil {
480-
level.Error(util.Logger).Log("msg", "Failed to transfer chunks to another ingester", "err", err)
481-
shutdownDuration.WithLabelValues("transfer", "fail", i.RingName).Observe(time.Since(transferStart).Seconds())
482-
} else {
483-
flushRequired = false
484-
shutdownDuration.WithLabelValues("transfer", "success", i.RingName).Observe(time.Since(transferStart).Seconds())
485-
}
477+
transferStart := time.Now()
478+
if err := i.flushTransferer.TransferOut(ctx); err != nil {
479+
level.Error(util.Logger).Log("msg", "Failed to transfer chunks to another ingester", "err", err)
480+
shutdownDuration.WithLabelValues("transfer", "fail", i.RingName).Observe(time.Since(transferStart).Seconds())
481+
} else {
482+
flushRequired = false
483+
shutdownDuration.WithLabelValues("transfer", "success", i.RingName).Observe(time.Since(transferStart).Seconds())
486484
}
487485

488486
if flushRequired {

pkg/ring/lifecycler_test.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ func testLifecyclerConfig(ringConfig Config, id string) LifecyclerConfig {
3232
lifecyclerConfig.Port = 1
3333
lifecyclerConfig.RingConfig = ringConfig
3434
lifecyclerConfig.NumTokens = 1
35-
lifecyclerConfig.ClaimOnRollout = true
3635
lifecyclerConfig.ID = id
3736
lifecyclerConfig.FinalSleep = 0
3837
return lifecyclerConfig

0 commit comments

Comments
 (0)