Remove unused control option for disabling concurrency limiter (#4677)

<!-- PR description-->

Concurrency limiter is stable and has been in use since several months. We had added a killswitch to disable it for safety reasons. It's not being used by SDK consumers, and hidden in corso cli. 

This PR removes the `--disable-concurrency-limiter` flag & associated control option.

---

#### Does this PR need a docs update or release note?

- [ ]  Yes, it's included
- [ ] 🕐 Yes, but in a later PR
- [x]  No

#### Type of change

<!--- Please check the type of change your PR introduces: --->
- [ ] 🌻 Feature
- [ ] 🐛 Bugfix
- [ ] 🗺️ Documentation
- [ ] 🤖 Supportability/Tests
- [ ] 💻 CI/Deployment
- [x] 🧹 Tech Debt/Cleanup

#### Issue(s)

<!-- Can reference multiple issues. Use one of the following "magic words" - "closes, fixes" to auto-close the Github issue. -->
* #<issue>

#### Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [ ]  Unit test
- [ ] 💚 E2E
This commit is contained in:
Abhishek Pandey 2023-11-14 11:45:34 -08:00 committed by GitHub
parent 05abdcd736
commit 02108fab95
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 33 additions and 62 deletions

View File

@ -82,7 +82,6 @@ func addExchangeCommands(cmd *cobra.Command) *cobra.Command {
flags.AddFetchParallelismFlag(c) flags.AddFetchParallelismFlag(c)
flags.AddDisableDeltaFlag(c) flags.AddDisableDeltaFlag(c)
flags.AddEnableImmutableIDFlag(c) flags.AddEnableImmutableIDFlag(c)
flags.AddDisableConcurrencyLimiterFlag(c)
flags.AddDeltaPageSizeFlag(c) flags.AddDeltaPageSizeFlag(c)
flags.AddGenericBackupFlags(c) flags.AddGenericBackupFlags(c)

View File

@ -108,7 +108,6 @@ func (suite *ExchangeUnitSuite) TestBackupCreateFlags() {
// bool flags // bool flags
"--" + flags.DisableDeltaFN, "--" + flags.DisableDeltaFN,
"--" + flags.EnableImmutableIDFN, "--" + flags.EnableImmutableIDFN,
"--" + flags.DisableConcurrencyLimiterFN,
}, },
flagsTD.PreparedGenericBackupFlags(), flagsTD.PreparedGenericBackupFlags(),
flagsTD.PreparedProviderFlags(), flagsTD.PreparedProviderFlags(),
@ -125,7 +124,6 @@ func (suite *ExchangeUnitSuite) TestBackupCreateFlags() {
assert.True(t, co.ToggleFeatures.ForceItemDataDownload) assert.True(t, co.ToggleFeatures.ForceItemDataDownload)
assert.True(t, co.ToggleFeatures.DisableDelta) assert.True(t, co.ToggleFeatures.DisableDelta)
assert.True(t, co.ToggleFeatures.ExchangeImmutableIDs) assert.True(t, co.ToggleFeatures.ExchangeImmutableIDs)
assert.True(t, co.ToggleFeatures.DisableConcurrencyLimiter)
flagsTD.AssertGenericBackupFlags(t, cmd) flagsTD.AssertGenericBackupFlags(t, cmd)
flagsTD.AssertProviderFlags(t, cmd) flagsTD.AssertProviderFlags(t, cmd)
flagsTD.AssertStorageFlags(t, cmd) flagsTD.AssertStorageFlags(t, cmd)

View File

@ -5,38 +5,36 @@ import (
) )
const ( const (
AlertsFN = "alerts" AlertsFN = "alerts"
DeltaPageSizeFN = "delta-page-size" DeltaPageSizeFN = "delta-page-size"
DisableConcurrencyLimiterFN = "disable-concurrency-limiter" DisableDeltaFN = "disable-delta"
DisableDeltaFN = "disable-delta" DisableIncrementalsFN = "disable-incrementals"
DisableIncrementalsFN = "disable-incrementals" ForceItemDataDownloadFN = "force-item-data-download"
ForceItemDataDownloadFN = "force-item-data-download" EnableImmutableIDFN = "enable-immutable-id"
EnableImmutableIDFN = "enable-immutable-id" FailFastFN = "fail-fast"
FailFastFN = "fail-fast" FailedItemsFN = "failed-items"
FailedItemsFN = "failed-items" FetchParallelismFN = "fetch-parallelism"
FetchParallelismFN = "fetch-parallelism" NoStatsFN = "no-stats"
NoStatsFN = "no-stats" RecoveredErrorsFN = "recovered-errors"
RecoveredErrorsFN = "recovered-errors" NoPermissionsFN = "no-permissions"
NoPermissionsFN = "no-permissions" RunModeFN = "run-mode"
RunModeFN = "run-mode" SkippedItemsFN = "skipped-items"
SkippedItemsFN = "skipped-items" SkipReduceFN = "skip-reduce"
SkipReduceFN = "skip-reduce"
) )
var ( var (
DeltaPageSizeFV int DeltaPageSizeFV int
DisableConcurrencyLimiterFV bool DisableDeltaFV bool
DisableDeltaFV bool DisableIncrementalsFV bool
DisableIncrementalsFV bool ForceItemDataDownloadFV bool
ForceItemDataDownloadFV bool EnableImmutableIDFV bool
EnableImmutableIDFV bool FailFastFV bool
FailFastFV bool FetchParallelismFV int
FetchParallelismFV int ListAlertsFV string
ListAlertsFV string ListFailedItemsFV string
ListFailedItemsFV string ListSkippedItemsFV string
ListSkippedItemsFV string ListRecoveredErrorsFV string
ListRecoveredErrorsFV string NoStatsFV bool
NoStatsFV bool
// RunMode describes the type of run, such as: // RunMode describes the type of run, such as:
// flagtest, dry, run. Should default to 'run'. // flagtest, dry, run. Should default to 'run'.
RunModeFV string RunModeFV string
@ -151,19 +149,6 @@ func AddEnableImmutableIDFlag(cmd *cobra.Command) {
cobra.CheckErr(fs.MarkHidden(EnableImmutableIDFN)) cobra.CheckErr(fs.MarkHidden(EnableImmutableIDFN))
} }
// AddDisableConcurrencyLimiterFlag adds a hidden cli flag which, when set,
// removes concurrency limits when communicating with graph API. This
// flag is only relevant for exchange backups for now
func AddDisableConcurrencyLimiterFlag(cmd *cobra.Command) {
fs := cmd.Flags()
fs.BoolVar(
&DisableConcurrencyLimiterFV,
DisableConcurrencyLimiterFN,
false,
"Disable concurrency limiter middleware. Default: false")
cobra.CheckErr(fs.MarkHidden(DisableConcurrencyLimiterFN))
}
// AddRunModeFlag adds the hidden --run-mode flag. // AddRunModeFlag adds the hidden --run-mode flag.
func AddRunModeFlag(cmd *cobra.Command, persistent bool) { func AddRunModeFlag(cmd *cobra.Command, persistent bool) {
fs := cmd.Flags() fs := cmd.Flags()

View File

@ -79,12 +79,11 @@ var (
FetchParallelism = "3" FetchParallelism = "3"
FailFast = true FailFast = true
DisableIncrementals = true DisableIncrementals = true
ForceItemDataDownload = true ForceItemDataDownload = true
DisableDelta = true DisableDelta = true
EnableImmutableID = true EnableImmutableID = true
DisableConcurrencyLimiter = true
) )
func WithFlags2( func WithFlags2(

View File

@ -26,7 +26,6 @@ func Control() control.Options {
opt.ToggleFeatures.ForceItemDataDownload = flags.ForceItemDataDownloadFV opt.ToggleFeatures.ForceItemDataDownload = flags.ForceItemDataDownloadFV
opt.ToggleFeatures.DisableDelta = flags.DisableDeltaFV opt.ToggleFeatures.DisableDelta = flags.DisableDeltaFV
opt.ToggleFeatures.ExchangeImmutableIDs = flags.EnableImmutableIDFV opt.ToggleFeatures.ExchangeImmutableIDs = flags.EnableImmutableIDFV
opt.ToggleFeatures.DisableConcurrencyLimiter = flags.DisableConcurrencyLimiterFV
opt.Parallelism.ItemFetch = flags.FetchParallelismFV opt.Parallelism.ItemFetch = flags.FetchParallelismFV
return opt return opt

View File

@ -35,7 +35,6 @@ func (suite *OptionsUnitSuite) TestAddExchangeCommands() {
assert.True(t, flags.NoPermissionsFV, flags.NoPermissionsFN) assert.True(t, flags.NoPermissionsFV, flags.NoPermissionsFN)
assert.True(t, flags.SkipReduceFV, flags.SkipReduceFN) assert.True(t, flags.SkipReduceFV, flags.SkipReduceFN)
assert.Equal(t, 2, flags.FetchParallelismFV, flags.FetchParallelismFN) assert.Equal(t, 2, flags.FetchParallelismFV, flags.FetchParallelismFN)
assert.True(t, flags.DisableConcurrencyLimiterFV, flags.DisableConcurrencyLimiterFN)
assert.Equal(t, 499, flags.DeltaPageSizeFV, flags.DeltaPageSizeFN) assert.Equal(t, 499, flags.DeltaPageSizeFV, flags.DeltaPageSizeFN)
}, },
} }
@ -50,7 +49,6 @@ func (suite *OptionsUnitSuite) TestAddExchangeCommands() {
flags.AddNoPermissionsFlag(cmd) flags.AddNoPermissionsFlag(cmd)
flags.AddSkipReduceFlag(cmd) flags.AddSkipReduceFlag(cmd)
flags.AddFetchParallelismFlag(cmd) flags.AddFetchParallelismFlag(cmd)
flags.AddDisableConcurrencyLimiterFlag(cmd)
flags.AddDeltaPageSizeFlag(cmd) flags.AddDeltaPageSizeFlag(cmd)
// Test arg parsing for few args // Test arg parsing for few args
@ -64,7 +62,6 @@ func (suite *OptionsUnitSuite) TestAddExchangeCommands() {
"--" + flags.NoPermissionsFN, "--" + flags.NoPermissionsFN,
"--" + flags.SkipReduceFN, "--" + flags.SkipReduceFN,
"--" + flags.FetchParallelismFN, "2", "--" + flags.FetchParallelismFN, "2",
"--" + flags.DisableConcurrencyLimiterFN,
"--" + flags.DeltaPageSizeFN, "499", "--" + flags.DeltaPageSizeFN, "499",
}) })

View File

@ -50,11 +50,9 @@ func ProduceBackupCollections(
bpc.Options.ToggleFeatures.DisableDelta = true bpc.Options.ToggleFeatures.DisableDelta = true
} }
// Turn on concurrency limiter middleware for exchange backups
// unless explicitly disabled through DisableConcurrencyLimiterFN cli flag
graph.InitializeConcurrencyLimiter( graph.InitializeConcurrencyLimiter(
ctx, ctx,
bpc.Options.ToggleFeatures.DisableConcurrencyLimiter, true,
bpc.Options.Parallelism.ItemFetch) bpc.Options.Parallelism.ItemFetch)
cdps, canUsePreviousBackup, err := exchange.ParseMetadataCollections(ctx, bpc.MetadataCollections) cdps, canUsePreviousBackup, err := exchange.ParseMetadataCollections(ctx, bpc.MetadataCollections)

View File

@ -83,10 +83,6 @@ type Toggles struct {
RunMigrations bool `json:"runMigrations"` RunMigrations bool `json:"runMigrations"`
// DisableConcurrencyLimiter removes concurrency limits when communicating with
// graph API. This flag is only relevant for exchange backups for now
DisableConcurrencyLimiter bool `json:"disableConcurrencyLimiter,omitempty"`
// PreviewBackup denotes that this backup contains a subset of information for // PreviewBackup denotes that this backup contains a subset of information for
// the protected resource. PreviewBackups are used to demonstrate value by // the protected resource. PreviewBackups are used to demonstrate value by
// being quick to create. // being quick to create.