Dennis-Mircea Ciupitu created FLINK-40455:
---------------------------------------------
Summary: Decoupling Autotuning from the Autoscaling logic
Key: FLINK-40455
URL: https://issues.apache.org/jira/browse/FLINK-40455
Project: Flink
Issue Type: Improvement
Components: Autoscaler, Kubernetes Operator
Reporter: Dennis-Mircea Ciupitu
h1. Background
Autotuning is currently applied only as part of autoscaling decisions, so new
tuning recommendations are computed only when the autoscaler decides to
rescale, and not at all when the autoscaler is disabled or doesn't take a
scaling decision. This in practice limits the following concrete scenarios:
* Jobs that keep parallelism fixed by design cannot benefit from any tuning.
* Jobs that were scaled down to the lowest parallelism possible cannot be
further tuned such that the resource allocation can be optimized down even more
over long periods of low traffic.
* Jobs that were scaled up to the highest parallelism possible cannot be
further tuned such that the resource allocation can be optimized up even more
over long periods of low traffic.
With the above limitations, autotuning logic is unable to further realize cost
and infrastructure optimizations. Therefore, those limitations bring the need
to have the autotuning decoupled from autoscaling logic, with coordination in
between.
As part of the [dev mailing list
discussion|https://lists.apache.org/thread/vk6j8793rx2y78vhh1yvfjf4qntpfkm9] we
agreed to take the direction of decoupling autotuning from autoscaling logic
within the autoscaler module.
h1. Goal
The main purpose of this task is to cover the following:
* Autotuning model is refactored to a more extensible, self-contained model.
* Autotuning logic is applied either within the autoscaling logic or as a
separate step after autoscaling, depending on the case, under a full
coordination mechanism.
* Autoscaler metric collection will be shared by both autoscaling and the
autotuning.
* Autotuning is getting its own trigger interval, cooldown, and
minimum-improvement guard.
By implementing the above refactoring, autotuning will have a stronger baseline
on top of which multiple autotuners can be built. This will also open the door
to further enhancements and capabilities, making it an even more
self-contained, stable, and reliable feature, capable of delivering real cost
and infrastructure optimizations.
h1. Out of scope
The following items/improvements will stay on hold until the autotuning gets
further adoption and gets stabilized enough:
* Move the autotuner into its own module.
* Store the autotuning's `configOverrides` state into a dedicated autotuner
ConfigMap.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)