Add a control option to disable sliding window limiter (#4676)
<!-- PR description--> Add a killswitch for sliding window limiter. This is only relevant for exchange backups Setting this flag switches exchange backups to use the default token bucket rate limiter. --- #### 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 - [x] 🤖 Supportability/Tests - [ ] 💻 CI/Deployment - [ ] 🧹 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.--> - [ ] 💪 Manual - [x] ⚡ Unit test - [ ] 💚 E2E
This commit is contained in:
parent
bc9d258ca0
commit
71b0831c7b
@ -84,6 +84,7 @@ func addExchangeCommands(cmd *cobra.Command) *cobra.Command {
|
||||
flags.AddEnableImmutableIDFlag(c)
|
||||
flags.AddDeltaPageSizeFlag(c)
|
||||
flags.AddGenericBackupFlags(c)
|
||||
flags.AddDisableSlidingWindowLimiterFlag(c)
|
||||
|
||||
case listCommand:
|
||||
c, fs = utils.AddCommand(cmd, exchangeListCmd())
|
||||
|
||||
@ -108,6 +108,7 @@ func (suite *ExchangeUnitSuite) TestBackupCreateFlags() {
|
||||
// bool flags
|
||||
"--" + flags.DisableDeltaFN,
|
||||
"--" + flags.EnableImmutableIDFN,
|
||||
"--" + flags.DisableSlidingWindowLimiterFN,
|
||||
},
|
||||
flagsTD.PreparedGenericBackupFlags(),
|
||||
flagsTD.PreparedProviderFlags(),
|
||||
@ -124,6 +125,7 @@ func (suite *ExchangeUnitSuite) TestBackupCreateFlags() {
|
||||
assert.True(t, co.ToggleFeatures.ForceItemDataDownload)
|
||||
assert.True(t, co.ToggleFeatures.DisableDelta)
|
||||
assert.True(t, co.ToggleFeatures.ExchangeImmutableIDs)
|
||||
assert.True(t, co.ToggleFeatures.DisableSlidingWindowLimiter)
|
||||
flagsTD.AssertGenericBackupFlags(t, cmd)
|
||||
flagsTD.AssertProviderFlags(t, cmd)
|
||||
flagsTD.AssertStorageFlags(t, cmd)
|
||||
|
||||
@ -9,6 +9,7 @@ const (
|
||||
DeltaPageSizeFN = "delta-page-size"
|
||||
DisableDeltaFN = "disable-delta"
|
||||
DisableIncrementalsFN = "disable-incrementals"
|
||||
DisableSlidingWindowLimiterFN = "disable-sliding-window-limiter"
|
||||
ForceItemDataDownloadFN = "force-item-data-download"
|
||||
EnableImmutableIDFN = "enable-immutable-id"
|
||||
FailFastFN = "fail-fast"
|
||||
@ -26,6 +27,7 @@ var (
|
||||
DeltaPageSizeFV int
|
||||
DisableDeltaFV bool
|
||||
DisableIncrementalsFV bool
|
||||
DisableSlidingWindowLimiterFV bool
|
||||
ForceItemDataDownloadFV bool
|
||||
EnableImmutableIDFV bool
|
||||
FailFastFV bool
|
||||
@ -159,3 +161,18 @@ func AddRunModeFlag(cmd *cobra.Command, persistent bool) {
|
||||
fs.StringVar(&RunModeFV, RunModeFN, "run", "What mode to run: dry, test, run. Defaults to run.")
|
||||
cobra.CheckErr(fs.MarkHidden(RunModeFN))
|
||||
}
|
||||
|
||||
// AddDisableSlidingWindowLimiterFN disables the experimental sliding window rate
|
||||
// limiter for graph API requests. This is only relevant for exchange backups.
|
||||
// Exchange restores continue to use the default token bucket rate limiter.
|
||||
// Setting this flag switches exchange backups to use the default token bucket
|
||||
// rate limiter.
|
||||
func AddDisableSlidingWindowLimiterFlag(cmd *cobra.Command) {
|
||||
fs := cmd.Flags()
|
||||
fs.BoolVar(
|
||||
&DisableSlidingWindowLimiterFV,
|
||||
DisableSlidingWindowLimiterFN,
|
||||
false,
|
||||
"Disable sliding window rate limiter.")
|
||||
cobra.CheckErr(fs.MarkHidden(DisableSlidingWindowLimiterFN))
|
||||
}
|
||||
|
||||
@ -25,6 +25,7 @@ func Control() control.Options {
|
||||
opt.ToggleFeatures.DisableIncrementals = flags.DisableIncrementalsFV
|
||||
opt.ToggleFeatures.ForceItemDataDownload = flags.ForceItemDataDownloadFV
|
||||
opt.ToggleFeatures.DisableDelta = flags.DisableDeltaFV
|
||||
opt.ToggleFeatures.DisableSlidingWindowLimiter = flags.DisableSlidingWindowLimiterFV
|
||||
opt.ToggleFeatures.ExchangeImmutableIDs = flags.EnableImmutableIDFV
|
||||
opt.Parallelism.ItemFetch = flags.FetchParallelismFV
|
||||
|
||||
|
||||
@ -36,6 +36,7 @@ func (suite *OptionsUnitSuite) TestAddExchangeCommands() {
|
||||
assert.True(t, flags.SkipReduceFV, flags.SkipReduceFN)
|
||||
assert.Equal(t, 2, flags.FetchParallelismFV, flags.FetchParallelismFN)
|
||||
assert.Equal(t, 499, flags.DeltaPageSizeFV, flags.DeltaPageSizeFN)
|
||||
assert.True(t, flags.DisableSlidingWindowLimiterFV, flags.DisableSlidingWindowLimiterFN)
|
||||
},
|
||||
}
|
||||
|
||||
@ -50,6 +51,7 @@ func (suite *OptionsUnitSuite) TestAddExchangeCommands() {
|
||||
flags.AddSkipReduceFlag(cmd)
|
||||
flags.AddFetchParallelismFlag(cmd)
|
||||
flags.AddDeltaPageSizeFlag(cmd)
|
||||
flags.AddDisableSlidingWindowLimiterFlag(cmd)
|
||||
|
||||
// Test arg parsing for few args
|
||||
cmd.SetArgs([]string{
|
||||
@ -63,6 +65,7 @@ func (suite *OptionsUnitSuite) TestAddExchangeCommands() {
|
||||
"--" + flags.SkipReduceFN,
|
||||
"--" + flags.FetchParallelismFN, "2",
|
||||
"--" + flags.DeltaPageSizeFN, "499",
|
||||
"--" + flags.DisableSlidingWindowLimiterFN,
|
||||
})
|
||||
|
||||
err := cmd.Execute()
|
||||
|
||||
@ -87,4 +87,10 @@ type Toggles struct {
|
||||
// the protected resource. PreviewBackups are used to demonstrate value by
|
||||
// being quick to create.
|
||||
PreviewBackup bool `json:"previewBackup"`
|
||||
|
||||
// DisableSlidingWindowLimiter disables the experimental sliding window rate
|
||||
// limiter for graph API requests. This is only relevant for exchange backups.
|
||||
// Setting this flag switches exchange backups to fallback to the default token
|
||||
// bucket rate limiter.
|
||||
DisableSlidingWindowLimiter bool `json:"disableSlidingWindowLimiter"`
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user