Thanks Timo and Jim! Added a few sentences to the FLIP to cover your points.
-Alexey

On Mon, Jun 10, 2024 at 11:23 PM Timo Walther <twal...@apache.org> wrote:

> Hi Alexey,
>
> thanks for proposing this FLIP. It is a nice continuation of the vision
> we had for CompiledPlan when writing and implementing FLIP-190. The
> whole stack is prepared for serializing BatchExecNodes as well so it
> shouldn't be too hard to make this a reality.
>
>  > I think the FLIP should be clear on the backwards support strategy
>  > here. The strategy for streaming is "forever".  This may be the most
>  > interesting part of the FLIP to discuss.
>
> I agree with Jim. We shouldn't put too much burden on us (the Flink
> community). BatchExecNodes can evolve quicker than StreamExecNodes as
> the state component isn't an issue. Backwards compatibility of 2-3 Flink
> versions and at least 1 year of time should be enough for batch
> infrastructure to update. Of course we should avoid breaking changes
> whenever possible. This should be written down in the FLIP.
>
> Regards,
> Timo
>
>
>
>
> On 07.06.24 23:10, Jim Hughes wrote:
> > Hi Alexey,
> >
> > Responses inline below:
> >
> > On Mon, May 13, 2024 at 7:18 PM Alexey Leonov-Vendrovskiy <
> > vendrov...@gmail.com> wrote:
> >
> >> Thanks Jim.
> >>
> >>> 1. For the testing, I'd call the tests "execution" tests rather than
> >>> "restore" tests.  For streaming execution, restore tests have the
> >> compiled
> >>> plan and intermediate state; the tests verify that those can work
> >> together
> >>> and continue processing.
> >>
> >> Agree that we don't need to store and restore the intermediate state. So
> >> the most critical part is that the CompiledPlan for batch can be
> executed.
> >>
> >
> > On the FLIP, can you be more specific about what we are checking during
> > execution?  I'd suggest that `executeSql(_)` and
> > `executePlan(compilePlanSql(_))` should be compared.
> >
> >
> >> 2. The FLIP implicitly suggests "completeness tests" (to use FLIP-190's
> >>> words).  Do we need "change detection tests"?  I'm a little unsure if
> >> that
> >>> is presently happening in an automatic way for streaming operators.
> >>
> >>
> >>   We might need to elaborate more on this, but the idea is that  we
> need to
> >> make sure that compiled plans created by an older version of SQL Planner
> >> are executable on newer runtimes.
> >>
> >> 3.  Can we remove old versions of batch operators eventually?  Or do we
> >>> need to keep them forever like we would for streaming operators?
> >>>
> >>
> >> We could have deprecation paths for old operator nodes in some cases.
> It is
> >> a matter of the time window: what could be practical the "time distance"
> >> between query planner and flink runtime against which the query query
> can
> >> be resubmitted.
> >> Note, here we don't have continuous queries, so there is always an
> option
> >> to "re-plan" the original SQL query text into a newer version of the
> >> CompiledPlan.
> >> With this in mind, a time window of 1yr+ would allow deprecation of
> older
> >> batch exec nodes, though I don't see this as a frequent event.
> >>
> >
> > As I read the JavaDocs for `TableEnvironment.loadPlan`, it looks like the
> > compiled plan ought to be sufficient to run a job at a later time.
> >
> > I think the FLIP should be clear on the backwards support strategy here.
> > The strategy for streaming is "forever".  This may be the most
> interesting
> > part of the FLIP to discuss.
> >
> > Can you let us know when you've updated the FLIP?
> >
> > Cheers,
> >
> > Jim
> >
> >
> >> -Alexey
> >>
> >>
> >>
> >> On Mon, May 13, 2024 at 1:52 PM Jim Hughes <jhug...@confluent.io.invalid
> >
> >> wrote:
> >>
> >>> Hi Alexey,
> >>>
> >>> After some thought, I have a question about deprecations:
> >>>
> >>> 3.  Can we remove old versions of batch operators eventually?  Or do we
> >>> need to keep them forever like we would for streaming operators?
> >>>
> >>> Cheers,
> >>>
> >>> Jim
> >>>
> >>> On Thu, May 9, 2024 at 11:29 AM Jim Hughes <jhug...@confluent.io>
> wrote:
> >>>
> >>>> Hi Alexey,
> >>>>
> >>>> Overall, the FLIP looks good and makes sense to me.
> >>>>
> >>>> 1. For the testing, I'd call the tests "execution" tests rather than
> >>>> "restore" tests.  For streaming execution, restore tests have the
> >>> compiled
> >>>> plan and intermediate state; the tests verify that those can work
> >>> together
> >>>> and continue processing.
> >>>>
> >>>> For batch execution, I think we just want that all existing compiled
> >>> plans
> >>>> can be executed in future versions.
> >>>>
> >>>> 2. The FLIP implicitly suggests "completeness tests" (to use
> FLIP-190's
> >>>> words).  Do we need "change detection tests"?  I'm a little unsure if
> >>> that
> >>>> is presently happening in an automatic way for streaming operators.
> >>>>
> >>>> In RestoreTestBase, generateTestSetupFiles is disabled and has to be
> >> run
> >>>> manually when tests are being written.
> >>>>
> >>>> Cheers,
> >>>>
> >>>> Jim
> >>>>
> >>>> On Tue, May 7, 2024 at 5:11 AM Paul Lam <paullin3...@gmail.com>
> wrote:
> >>>>
> >>>>> Hi Alexey,
> >>>>>
> >>>>> Thanks a lot for bringing up the discussion. I’m big +1 for the FLIP.
> >>>>>
> >>>>> I suppose the goal doesn’t involve the interchangeability of json
> >> plans
> >>>>> between batch mode and streaming mode, right?
> >>>>> In other words, a json plan compiled in a batch program can’t be run
> >> in
> >>>>> streaming mode without a migration (which is not yet supported).
> >>>>>
> >>>>> Best,
> >>>>> Paul Lam
> >>>>>
> >>>>>> 2024年5月7日 14:38,Alexey Leonov-Vendrovskiy <vendrov...@gmail.com>
> >> 写道:
> >>>>>>
> >>>>>> Hi everyone,
> >>>>>>
> >>>>>> PTAL at the proposed FLIP-456: CompiledPlan support for Batch
> >>> Execution
> >>>>>> Mode. It is pretty self-describing.
> >>>>>>
> >>>>>> Any thoughts are welcome!
> >>>>>>
> >>>>>> Thanks,
> >>>>>> Alexey
> >>>>>>
> >>>>>> [1]
> >>>>>>
> >>>>>
> >>>
> >>
> https://cwiki.apache.org/confluence/display/FLINK/FLIP-456%3A+CompiledPlan+support+for+Batch+Execution+Mode
> >>>>>> .
> >>>>>
> >>>>>
> >>>
> >>
> >
>
>

Reply via email to