Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add consecutive count check for Auto-scaling (#1703) #1715

Merged
merged 19 commits into from
Feb 18, 2020

Conversation

sre-bot
Copy link
Contributor

@sre-bot sre-bot commented Feb 17, 2020

cherry-pick #1703 to release-1.1


What problem does this PR solve?

ref #1651

Noteice
As Auto-scaling is under alpha feature, the first target is to achieve basic auto-scaling Availability.
The extra control to avoid jitter for production-ready is not considered in this request. These could be recorded in this issue first.
#1651

What is changed and how does it work?

Add 3 new configuration for Auto-scaling API and default them them Controller.

  1. MetricsTimeDuration which is used in the Prometheus Query
  2. ScaleOutThreshold
  3. ScaleInThreshold

ScaleOutThreshold/ScaleInThreshold is used to check the consecutive count in auto-scaling control to avoid jitter.

I also add the unit test for the current sync logic for tidb and tikv and the newly added function in util.go

In this request, each auto-scaling reconciliation would record the consecutive count in the target tidbclusterAutoScaler annotations marked as ScaleOutCount / ScaleInCount

For example:
In one tikv auto-scaling reconciliation,
if recommended replicas > current replicas, then:

tikvScaleOutCount = tikvScaleOutCount + 1;
tikvScaleInCount = 0;

if recommended replicas < current replicas, then:

tikvScaleOutCount = 0;
tikvScaleInCount= tikvScaleInCount +1;

if recommended replicas == current replicas, then:

tikvScaleOutCount = 0;
tikvScaleInCount= 0;

When the *ScaleOutCount/ *ScaleInCount is bigger than the defined property in autoscaler api, the auto-scaling would be performed and the record would be empty and recount.

Does this PR introduce a user-facing change?:

NONE

@Yisaer Yisaer merged commit 3ea9f37 into pingcap:release-1.1 Feb 18, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/auto-scaling related to auto-scaling area/controller status/PTAL PR needs to be reviewed
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants