Thanks for your updated, the FLIP looks good to me. Junrui Lee <jrlee....@gmail.com> 于2024年7月26日周五 12:10写道:
> Hi All, > > After an offline discussion with Ron, I have made the following updates to > FLIP-469: > > Introduced the OperatorsFinished class to represent the state of finished > operators, as well as the size and distribution of the data they produced. > The StreamGraphOptimizer strategy will now depend on OperatorsFinished > objects instead of JobEvent. JobEvent will be used only at runtime. When > the AdaptiveExecutionHandler receives a JobVertexFinishedEvent, it will > convert it to an OperatorsFinished object and send it to the > StreamGraphOptimizer to attempt to trigger an optimization of the > StreamGraph. > > Best, > Junrui > > Junrui Lee <jrlee....@gmail.com> 于2024年7月24日周三 15:46写道: > > > Hi Ron, > > > > Thank you for your questions regarding the > > StreamGraphOptimizationStrategy. Here are my responses: > > > > 1.is there a better way to pass it to the > > runtime? > > > > At the moment, we have not thought of a better way. > > > > Considering that this is a class from the table layer, it can only be > seen > > at the runtime layer through class loading. Additionally, this is also a > > configuration item that needs to be converged into the configuration > > (aligned with the goal of Flink 2.0 configuration refactor work). > > > > 2.can the list type always be > > order-preserving > > > > Yes, we will ensure that the order in which this config parameter is > > loaded is consistent with the order set by the user. The execution order > > will also follow this sequence. > > > > 3.are all > > StreamGraphOptimizationStrategy traversed and executed once? > > > > Yes, they are traversed and executed only once. > > > > Best regards, > > Junrui > > > > Ron Liu <ron9....@gmail.com> 于2024年7月24日周三 14:12写道: > > > >> One additional question: for a JobEvent, are all > >> StreamGraphOptimizationStrategy traversed and executed once? > >> > >> Best, > >> Ron > >> > >> Ron Liu <ron9....@gmail.com> 于2024年7月24日周三 13:59写道: > >> > >> > Hi, Junrui > >> > > >> > Thanks for the proposal, this design allows the Flink engine to become > >> > smarter by doing more dynamic optimizations at runtime. so +1 from my > >> side. > >> > > >> > For your FLIP, I've one minor question. > >> > > >> > Regarding the StreamGraphOptimizationStrategy, you mentioned > introducing > >> > the option > >> > `execution.batch.adaptive.stream-graph-optimization.strategies`(List > >> Type) > >> > and passing it to the runtime, is there a better way to pass it to the > >> > runtime? > >> > Is there a better way to pass it to the runtime than using the > >> > configuration parameter? Another thing is that suppose two > optimization > >> > strategies a, b are executed in order, a must be executed first, then > b. > >> > How do you let the user perceive that a must be in front of a when > >> setting > >> > parameters, and a must be behind, and can the list type always be > >> > order-preserving? > >> > > >> > > >> > Best, > >> > Ron > >> > > >> > Junrui Lee <jrlee....@gmail.com> 于2024年7月18日周四 12:12写道: > >> > > >> >> Hi, Weijie > >> >> > >> >> Thanks for your feedback! > >> >> > >> >> `StreamGraphOptimizationStrategy` is a reasonable abstract, I'd like > to > >> >> know what built-in strategy implementations you have in mind so far? > >> >> > >> >> We will introduce two optimization strategies: > >> >> AdaptiveBroadcastJoinOptimizeStrategy, which dynamically determines > and > >> >> switches to BroadcastJoin, and SkewedJoinOptimizeStrategy, which > >> addresses > >> >> data skew issues. > >> >> > >> >> For the so-called pending operators, can we show it in different > colors > >> >> on the UI. > >> >> > >> >> Yes, we will use different colors (such as green) to display the > >> pending > >> >> operators. > >> >> > >> >> Best regards, > >> >> Junrui > >> >> > >> >> weijie guo <guoweijieres...@gmail.com> 于2024年7月17日周三 20:15写道: > >> >> > >> >> > Thanks for the proposal! > >> >> > > >> >> > I like this idea as it gives Flink's adaptive batching processing > >> more > >> >> room > >> >> > to imagine and optimize. > >> >> > > >> >> > So, +1 from my side. > >> >> > > >> >> > I just have two questions: > >> >> > > >> >> > 1. `StreamGraphOptimizationStrategy` is a reasonable abstract, I'd > >> like > >> >> to > >> >> > know what built-in strategy implementations you have in mind so > far? > >> >> > > >> >> > 2. For the so-called pending operators, can we show it in different > >> >> colors > >> >> > on the UI. > >> >> > > >> >> > > >> >> > Best regards, > >> >> > > >> >> > Weijie > >> >> > > >> >> > > >> >> > Zhu Zhu <reed...@gmail.com> 于2024年7月17日周三 16:49写道: > >> >> > > >> >> > > Thanks Junrui for the updates. The proposal looks good to me. > >> >> > > With the stream graph added to the REST API result, I think we > are > >> >> > > also quite close to enable Flink to expand a job vertex to show > its > >> >> > > operator-chain topology. > >> >> > > > >> >> > > Thanks, > >> >> > > Zhu > >> >> > > > >> >> > > Junrui Lee <jrlee....@gmail.com> 于2024年7月15日周一 14:58写道: > >> >> > > > >> >> > > > Hi Zhu, > >> >> > > > > >> >> > > > Thanks for your feedback. > >> >> > > > > >> >> > > > Following your suggestion, I have updated the public interface > >> >> section > >> >> > of > >> >> > > > the FLIP with the following additions: > >> >> > > > > >> >> > > > 1. UI: > >> >> > > > The job topology will display a hybrid of the current JobGraph > >> along > >> >> > with > >> >> > > > downstream components yet to be converted to a StreamGraph. On > >> the > >> >> > > topology > >> >> > > > graph display page, there will be a "Show Pending Operators" > >> button > >> >> in > >> >> > > the > >> >> > > > upper right corner for users to switch back to a job topology > >> that > >> >> only > >> >> > > > includes JobVertices. > >> >> > > > > >> >> > > > 2. Rest API: > >> >> > > > Add a new field "stream-graph-plan" will be added to the job > >> details > >> >> > REST > >> >> > > > API, which represents the runtime Stream graph. The field > >> >> > "job-vertex-id" > >> >> > > > is valid only when the StreamNode has been converted to a > >> JobVertex, > >> >> > and > >> >> > > it > >> >> > > > will hold the ID of the corresponding JobVertex for that > >> StreamNode. > >> >> > > > > >> >> > > > For further information, please feel free to review the public > >> >> > interface > >> >> > > > section of FLIP-469 > >> >> > > > > >> >> > > > Best, > >> >> > > > Junrui > >> >> > > > > >> >> > > > Zhu Zhu <reed...@gmail.com> 于2024年7月15日周一 10:29写道: > >> >> > > > > >> >> > > > > +1 for the FLIP > >> >> > > > > > >> >> > > > > It is useful to adaptively optimize logical execution > >> plans(stream > >> >> > > > > operators and > >> >> > > > > stream edges) for batch jobs. > >> >> > > > > > >> >> > > > > One question: > >> >> > > > > The FLIP already proposed to update the REST API & Web UI to > >> show > >> >> > > > operators > >> >> > > > > that are not yet converted to job vertices. However, I think > it > >> >> would > >> >> > > be > >> >> > > > > better if Flink can display these operators as part of the > >> graph, > >> >> > > > allowing > >> >> > > > > users to have an overview of the processing logic graph at > >> early > >> >> > stages > >> >> > > > of > >> >> > > > > the job execution. > >> >> > > > > This change would also involve the public interface, so > >> instead of > >> >> > > > > postponing > >> >> > > > > it to a later FLIP, I prefer to have a design for it in this > >> FLIP. > >> >> > > WDYT? > >> >> > > > > > >> >> > > > > Thanks, > >> >> > > > > Zhu > >> >> > > > > > >> >> > > > > Junrui Lee <jrlee....@gmail.com> 于2024年7月11日周四 11:27写道: > >> >> > > > > > >> >> > > > > > Hi devs, > >> >> > > > > > > >> >> > > > > > Xia Sun, Lei Yang, and I would like to initiate a > discussion > >> >> about > >> >> > > > > > FLIP-469: Supports Adaptive Optimization of StreamGraph. > >> >> > > > > > > >> >> > > > > > This FLIP is the second in the series on adaptive > >> optimization > >> >> of > >> >> > > > > > StreamGraph and follows up on FLIP-468 [1]. As we proposed > in > >> >> > > FLIP-468 > >> >> > > > to > >> >> > > > > > enable the scheduler to recognize and access the > >> StreamGraph, in > >> >> > this > >> >> > > > > FLIP, > >> >> > > > > > we will propose a mechanism for adaptive optimization of > >> >> > StreamGraph. > >> >> > > > It > >> >> > > > > > allows the scheduler to dynamically adjust the logical > >> execution > >> >> > plan > >> >> > > > at > >> >> > > > > > runtime. This mechanism is the base of adaptive > optimization > >> >> > > > strategies, > >> >> > > > > > such as adaptive broadcast join and skewed join > optimization. > >> >> > > > > > > >> >> > > > > > Unlike the traditional execution of jobs based on a static > >> >> > > StreamGraph, > >> >> > > > > > this mechanism will progressively determine StreamGraph > >> during > >> >> > > runtime. > >> >> > > > > The > >> >> > > > > > determined StreamGraph will be transformed into a specific > >> >> > JobGraph, > >> >> > > > > while > >> >> > > > > > the indeterminate part will allow Flink to flexibly adjust > >> >> > according > >> >> > > to > >> >> > > > > > real-time job status and actual input conditions. > >> >> > > > > > > >> >> > > > > > Note that this FLIP focuses on the introduction of the > >> mechanism > >> >> > and > >> >> > > > does > >> >> > > > > > not introduce any actual optimization strategies; these > will > >> be > >> >> > > > discussed > >> >> > > > > > in subsequent FLIPs. > >> >> > > > > > > >> >> > > > > > For more details, please refer to FLIP-469 [2]. We look > >> forward > >> >> to > >> >> > > your > >> >> > > > > > feedback. > >> >> > > > > > > >> >> > > > > > Best, > >> >> > > > > > > >> >> > > > > > Xia Sun, Lei Yang and Junrui Lee > >> >> > > > > > > >> >> > > > > > [1] > >> >> > > > > > > >> >> > > > > > > >> >> > > > > > >> >> > > > > >> >> > > > >> >> > > >> >> > >> > https://cwiki.apache.org/confluence/display/FLINK/FLIP-468%3A+Introducing+StreamGraph-Based+Job+Submission > >> >> > > > > > [2] > >> >> > > > > > > >> >> > > > > > > >> >> > > > > > >> >> > > > > >> >> > > > >> >> > > >> >> > >> > https://cwiki.apache.org/confluence/display/FLINK/FLIP-469%3A+Supports+Adaptive+Optimization+of+StreamGraph > >> >> > > > > > > >> >> > > > > > >> >> > > > > >> >> > > > >> >> > > >> >> > >> > > >> > > >