THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
...
- If it falls outside a cooldown period, it is executed right away and a timer is started
- If it falls during the cooldown period, it is not dropped, it is rather stacked to be executed when the period ends.
- Receiving a scaling event during a cooldown period does not reset the period timer to avoid increasing the delay in scaling operations.
- When the period ends, all the stacked scaling operations are executed one by one at a pace ofaggregated to result in a single operation. This operation is executed and then a new scaling-cooldown-period timeis started
The diagram below shows the different steps and cases:
...
PlantUML |
---|
@startuml !pragma teoz true skinparam ParticipantPadding 100 participant Scheduler as sch participant ScalingOperationStack as stack participant CooldownTimer as timer [-> sch : scaling event sch -> sch : trigger scale change {start1} sch -> timer : start timer activate timer [-> sch : scaling event sch -> stack : stack operation [-> sch : scaling event sch -> stack : stack operation {end1} timer --> sch : end of cooldown period deactivate timer {start1} <-> {end1} : scaling-cooldown-period sch -> stack : pop stack operations sch -> sch : aggregate operations sch -> sch : trigger scale change {start2} sch -> timer : start timer activate timer ||120|| {end2} timer --> sch : end of cooldown period deactivate timer {start2} <-> {end2} : scaling-cooldown-period sch -> stacksch : popno stack sch -> sch : trigger scale changeoperation to trigger @enduml |
This diagram is explained as this:
- A first scaling event is received and the scaling operation is executed right away and then leading to the creation of a cooldown period is started
- Then 2 scaling events arrive during the cooldown period . These events are stacked and then executed when the .
- When the cooldown period ends, one by once. the stacked operations are aggregated and executed as a single operation
- Executing this Executing the first stacked operation leads to creating another cooldown period. During this period no scaling event is received, so no new scaling operation is stacked
- When this last cooldown period ends, the last stacked operation is popped from the stack and triggeredscheduler has finished his scaling job
Compatibility, Deprecation, and Migration Plan
...
DataStreamAllroundTestProgram
Rejected Alternatives
NoneWhen scaling operations are popped from the stack, they are not executed one by once at a sclaing-cooldown-period pace to avoid adding too much delay in scaling.