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

@ -7,7 +7,6 @@ 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"
@ -25,7 +24,6 @@ const (
var ( var (
DeltaPageSizeFV int DeltaPageSizeFV int
DisableConcurrencyLimiterFV bool
DisableDeltaFV bool DisableDeltaFV bool
DisableIncrementalsFV bool DisableIncrementalsFV bool
ForceItemDataDownloadFV bool ForceItemDataDownloadFV bool
@ -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

@ -84,7 +84,6 @@ var (
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.