Hi Yuepeng,
Sorry for not finding the time to respond earlier. I went over FLIP-495 [1]
and the previous FLIP-487 discussion [2]. Thanks for putting it all
together in a FLIP. That makes it easier to discuss the next iteration.
Here are a few comments I have:

Rescale ID section
- How is the resourceRequirementsEpochID generated?
- Why is the Resource ID section "hidden" (at least, I don't have access)
in GoogleDocs and not added to the FLIP?
- Can you add more details of where this ID is coming from?

Slots section
- I was surprised that we have a name for the SlotSharingGroup. Then I
realized that we have 3 different implementations of the SlotSharingGroup
in Flink. The one that's used in the scheduler doesn't have the name
preserved but works with SlotSharingGroupIds. That, we might need to
consider. If we pass down the name (which might make sense for the UI), we
still want to expose the SlotSharingGroupId as well, I guess.
- What about exposing the ResourceProfile of the SlotSharingGroup here as
well?

Rescale Event/Rescale status sections
- I'm not sure about the AdaptiveScheduler state to Rescale event state
mapping that's included in the FLIP right now: Triggering rescaling only
happens in the Executing state of the AdaptiveScheduler right now. Waiting
for resources also happens while the job is running (i.e. Executing state).
The AdaptiveScheduler will immediately transition from Executing to
CreatingExecutionGraph state in case of rescaling (WaitingForResources is
omitted). This was introduced FLIP-472 [3]

- I'm wondering whether we can rely on the StateTransitionManager here
(which was also introduced with FLIP-472 [3]). That instance is coupled
with the Executing state (aside from WaitingForResources where it serves a
different purpose) and holds the information about the rescale trigger
event (and subsequent ignored rescale trigger events) and when the
rescaling was actually initiated. There might not be a need to work

- I also want to point out that we have four different notions of resource
configurations:
  - Desired resources: The ideal resource configuration that we want to
achieve for a job if enough Task slots are available (essentially the upper
bound of the job's parallelism)
  - Sufficient resources: A minimum resource configuration that the job can
run on (the lower bound of the job's parallelism)
  - Current resources: The resource configuration the job runs on before
rescaling
  - Follow-up resources
The first two are the resource configurations the rescale decision is based
on. The last two are the actual applied resource configurations. Keep in
mind that the latter two are not necessarily matching the resource
configurations that were considered when deciding on the rescaling.
Especially the case where the desired resources were met when rescaling was
triggered but where task slots are lost while rescaling can have a
surprising outcome. We might want to have this reflected in the rescale
event.

How/Where to store rescale events section
- It makes sense to have the rescale event history be stored in the
AdaptiveScheduler (analogously to what is done for the exception history).
But can you elaborate a bit more on the different approaches (in-memory, on
disk, DFS). Each of them have different outcome (in-memory: the history is
gone as soon as the job reaches a globally-terminal state; on disk: rescale
history survives the job termination; DFS: rescale history survives a JM
failover). I feel like on disk approach (analogously to the exception
history) makes the most sense here. WDYT?

Best,
Matthias

[1]
https://cwiki.apache.org/confluence/display/FLINK/%5BWIP%5D+FLIP-495%3A+Support+AdaptiveScheduler+record+and+query+the+rescale+history
[2] https://lists.apache.org/thread/f4md4btkf006mxcxf66bng1kfz0rsn8c
[3]
https://cwiki.apache.org/confluence/display/FLINK/FLIP-472%3A+Aligning+timeout+logic+in+the+AdaptiveScheduler%27s+WaitingForResources+and+Executing+states

On Tue, 17 Dec 2024, 16:21 Yuepeng Pan, <panyuep...@apache.org> wrote:

> Hi community,
>
>
>
>
> We discussed several aspects of FLIP-487[1] 'Show history of rescales in
> Web UI for AdaptiveScheduler'
> and received a lot of valuable feedback. Based on the suggestions from the
> email thread[2],
> we plan to split the original proposal for FLIP-487[1].
>
>
>
>
> The current email thread and the FLIP-495[3] wiki will be used to discuss
> 'Support AdaptiveScheduler in recording and querying the rescale history',
> while FLIP-487[1] will primarily focus on displaying-related design content
>
>
>
>
> Looking forward to any feedback and opinions on FLIP-495[3].
>
>
>
>
> [1]
> https://cwiki.apache.org/confluence/display/FLINK/%5BWIP%5D+FLIP-487%3A+Show+history+of+rescales+in+Web+UI+for+AdaptiveScheduler
>
> [2] https://lists.apache.org/thread/f4md4btkf006mxcxf66bng1kfz0rsn8c
>
> [3]
> https://cwiki.apache.org/confluence/display/FLINK/%5BWIP%5D+FLIP-495%3A+Support+AdaptiveScheduler+record+and+query+the+rescale+history
>
>
>
>
> Thank you very much.
>
>
>
>
> Best,
>
> Regards.
>
> Yuepeng Pan

Reply via email to