>
> (1) Implicitly point a public API change is not enough, Could you add a
> section Public Interfaces to enumerate all Public APIs that you proposed
> and you changed?
> It’s a standard part of a FLIP template[1].
>
yes this is updated in the FLIP now.



> (2) About the proposed public interface ResultHandler<RequestEntryT>,
> Could you explain or show how to use the methods #completeExceptionally and
> #retryForEntries? I didn’t find
> detail explanation or Usage example code to understand them.
>

Added to the FLIP now.



> (3) Could you add necessary java documents for all public API changes like
> new method AsyncSinkWriterConfiguration#setRequestTimeoutMs ? The java doc
> of [2] is a good example.
>

sure, Added now.

(4) Another minor reminder AsyncSinkBase is a @PublicEvolving interface
> too, please correct it, and please ensure the backward compatibility has
> been considered for all public interfaces the FLIP changed.
>
Done

Best Regards
Ahmed Hamdy


On Wed, 22 May 2024 at 04:16, Leonard Xu <xbjt...@gmail.com> wrote:

> Thanks for your reply, Ahmed.
>
> > (2) The FLIP-451 aims to introduce a timeout configuration, but I didn’t
> >> find the configuration in FLIP even I lookup some historical versions of
> >> the FLIP. Did I miss some key informations?
> >>
> >
> > Yes, I tried to implicitly point that it will be added to the existing
> > AsyncSinkWriterConfiguration to not inflate the FLIP, but I get it might
> be
> > confusing. I have added the changes to the configuration classes in the
> > FLIP to make it clearer.
>
> (1) Implicitly point a public API change is not enough, Could you add a
> section Public Interfaces to enumerate all Public APIs that you proposed
> and you changed?
> It’s a standard part of a FLIP template[1].
>
> (2) About the proposed public interface ResultHandler<RequestEntryT>,
> Could you explain or show how to use the methods #completeExceptionally and
> #retryForEntries? I didn’t find
> detail explanation or Usage example code to understand them.
>
> (3) Could you add necessary java documents for all public API changes like
> new method AsyncSinkWriterConfiguration#setRequestTimeoutMs ? The java doc
> of [2] is a good example.
>
> (4) Another minor reminder AsyncSinkBase is a @PublicEvolving interface
> too, please correct it, and please ensure the backward compatibility has
> been considered for all public interfaces the FLIP changed.
>
>
> Best,
> Leonard
> [1]https://cwiki.apache.org/confluence/display/FLINK/FLIP+Template
> [2]
> https://cwiki.apache.org/confluence/display/FLINK/FLIP-171%3A+Async+Sink
>
>
> >
> >
> > On Tue, 21 May 2024 at 14:56, Leonard Xu <xbjt...@gmail.com> wrote:
> >
> >> Thanks Ahmed for kicking off this discussion, sorry for jumping the
> >> discussion late.
> >>
> >> (1)I’m confused about the discuss thread name ‘FLIP-451: Refactor Async
> >> sink API’  and FLIP title/vote thread name '
> >> FLIP-451: Introduce timeout configuration to AsyncSink API <
> >>
> https://cwiki.apache.org/confluence/display/FLINK/FLIP-451%3A+Introduce+timeout+configuration+to+AsyncSink+API
> >’,
> >> they are different for me. Could you help explain the change history?
> >>
> >> (2) The FLIP-451 aims to introduce a timeout configuration, but I didn’t
> >> find the configuration in FLIP even I lookup some historical versions of
> >> the FLIP. Did I miss some key informations?
> >>
> >> (3) About the code change part, there’re some un-complete pieces in
> >> AsyncSinkWriter for example `submitRequestEntries(List<RequestEntryT>
> >> requestEntries,);` is incorrect and `sendTime` variable I didn’t
> >> find the place we define it and where we use it.
> >>
> >> Sorry for jumping the discussion thread during vote phase again.
> >>
> >> Best,
> >> Leonard
> >>
> >>
> >>> 2024年5月21日 下午3:49,Ahmed Hamdy <hamdy10...@gmail.com> 写道:
> >>>
> >>> Hi Hong,
> >>> Thanks for pointing that out, no we are not
> >>> deprecating getFatalExceptionCons(). I have updated the FLIP
> >>> Best Regards
> >>> Ahmed Hamdy
> >>>
> >>>
> >>> On Mon, 20 May 2024 at 15:40, Hong Liang <h...@apache.org> wrote:
> >>>
> >>>> Hi Ahmed,
> >>>> Thanks for putting this together! Should we still be marking
> >>>> getFatalExceptionCons() as @Deprecated in this FLIP, if we are not
> >>>> providing a replacement?
> >>>>
> >>>> Regards,
> >>>> Hong
> >>>>
> >>>> On Mon, May 13, 2024 at 7:58 PM Ahmed Hamdy <hamdy10...@gmail.com>
> >> wrote:
> >>>>
> >>>>> Hi David,
> >>>>> yes there error classification was initially left to sink
> implementers
> >> to
> >>>>> handle while we provided utilities to classify[1] and bubble up[2]
> >> fatal
> >>>>> exceptions to avoid retrying them.
> >>>>> Additionally some sink implementations provide an option to short
> >> circuit
> >>>>> the failures by exposing a `failOnError` flag as in
> >>>> KinesisStreamsSink[3],
> >>>>> however this FLIP scope doesn't include any changes for retry
> >> mechanisms.
> >>>>>
> >>>>> 1-
> >>>>>
> >>>>>
> >>>>
> >>
> https://github.com/apache/flink/blob/015867803ff0c128b1c67064c41f37ca0731ed86/flink-connectors/flink-connector-base/src/main/java/org/apache/flink/connector/base/sink/throwable/FatalExceptionClassifier.java#L32
> >>>>> 2-
> >>>>>
> >>>>>
> >>>>
> >>
> https://github.com/apache/flink/blob/015867803ff0c128b1c67064c41f37ca0731ed86/flink-connectors/flink-connector-base/src/main/java/org/apache/flink/connector/base/sink/writer/AsyncSinkWriter.java#L533
> >>>>> 3-
> >>>>>
> >>>>>
> >>>>
> >>
> https://github.com/apache/flink-connector-aws/blob/c6e0abb65a0e51b40dd218b890a111886fbf797f/flink-connector-aws/flink-connector-aws-kinesis-streams/src/main/java/org/apache/flink/connector/kinesis/sink/KinesisStreamsSinkWriter.java#L106
> >>>>>
> >>>>> Best Regards
> >>>>> Ahmed Hamdy
> >>>>>
> >>>>>
> >>>>> On Mon, 13 May 2024 at 16:20, David Radley <david_rad...@uk.ibm.com>
> >>>>> wrote:
> >>>>>
> >>>>>> Hi,
> >>>>>> I wonder if the way that the async request fails could be a
> retriable
> >>>> or
> >>>>>> non-retriable error, so it would retry only for retriable
> (transient)
> >>>>>> errors (like IOExceptions) . I see some talk on the internet around
> >>>>>> retriable SQL errors.
> >>>>>> If this was the case then we may need configuration to limit the
> >>>> number
> >>>>>> of retries of retriable errors.
> >>>>>>           Kind regards, David
> >>>>>>
> >>>>>>
> >>>>>> From: Muhammet Orazov <mor+fl...@morazow.com.INVALID>
> >>>>>> Date: Monday, 13 May 2024 at 10:30
> >>>>>> To: dev@flink.apache.org <dev@flink.apache.org>
> >>>>>> Subject: [EXTERNAL] Re: [DISCUSS] FLIP-451: Refactor Async sink API
> >>>>>> Great, thanks for clarifying!
> >>>>>>
> >>>>>> Best,
> >>>>>> Muhammet
> >>>>>>
> >>>>>>
> >>>>>> On 2024-05-06 13:40, Ahmed Hamdy wrote:
> >>>>>>> Hi Muhammet,
> >>>>>>> Thanks for the feedback.
> >>>>>>>
> >>>>>>>> Could you please add more here why it is harder? Would the
> >>>>>>>> `completeExceptionally`
> >>>>>>>> method be related to it? Maybe you can add usage example for it
> >>>> also.
> >>>>>>>>
> >>>>>>>
> >>>>>>> this is mainly due to the current implementation of fatal exception
> >>>>>>> failures which depends on base `getFatalExceptionConsumer` method
> >>>> that
> >>>>>>> is
> >>>>>>> decoupled from the actual called method `submitRequestEntries`,
> Since
> >>>>>>> this
> >>>>>>> is now not the primary concern of the FLIP, I have removed it from
> >>>> the
> >>>>>>> motivation so that the scope is defined around introducing the
> >>>> timeout
> >>>>>>> configuration.
> >>>>>>>
> >>>>>>>> Should we add a list of possible connectors that this FLIP would
> >>>>>>>> improve?
> >>>>>>>
> >>>>>>> Good call, I have added under migration plan.
> >>>>>>>
> >>>>>>> Best Regards
> >>>>>>> Ahmed Hamdy
> >>>>>>>
> >>>>>>>
> >>>>>>> On Mon, 6 May 2024 at 08:49, Muhammet Orazov <
> mor+fl...@morazow.com>
> >>>>>>> wrote:
> >>>>>>>
> >>>>>>>> Hey Ahmed,
> >>>>>>>>
> >>>>>>>> Thanks for the FLIP! +1 (non-binding)
> >>>>>>>>
> >>>>>>>>> Additionally the current interface for passing fatal exceptions
> >>>> and
> >>>>>>>>> retrying records relies on java consumers which makes it harder
> to
> >>>>>>>>> understand.
> >>>>>>>>
> >>>>>>>> Could you please add more here why it is harder? Would the
> >>>>>>>> `completeExceptionally`
> >>>>>>>> method be related to it? Maybe you can add usage example for it
> >>>> also.
> >>>>>>>>
> >>>>>>>>> we should proceed by adding support in all supporting connector
> >>>>> repos.
> >>>>>>>>
> >>>>>>>> Should we add list of possible connectors that this FLIP would
> >>>>>>>> improve?
> >>>>>>>>
> >>>>>>>> Best,
> >>>>>>>> Muhammet
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> On 2024-04-29 14:08, Ahmed Hamdy wrote:
> >>>>>>>>> Hi all,
> >>>>>>>>> I would like to start a discussion on FLIP-451[1]
> >>>>>>>>> The proposal comes on encountering a couple of issues while
> >>>> working
> >>>>>>>>> with
> >>>>>>>>> implementers for Async Sink.
> >>>>>>>>> The FLIP mainly proposes a new API similar to AsyncFunction and
> >>>>>>>>> ResultFuture as well as introducing timeout handling for
> AsyncSink
> >>>>>>>>> requests.
> >>>>>>>>> The FLIP targets 1.20 with backward compatible changes and we
> >>>> should
> >>>>>>>>> proceed by adding support in all supporting connector repos.
> >>>>>>>>>
> >>>>>>>>> 1-
> >>>>>>>>>
> >>>>>>>>
> >>>>>>
> >>>>>
> >>>>
> >>
> https://cwiki.apache.org/confluence/display/FLINK/FLIP-451%3A+Refactor+Async+Sink+API
> >>>>>>>>> Best Regards
> >>>>>>>>> Ahmed Hamdy
> >>>>>>>>
> >>>>>>
> >>>>>> Unless otherwise stated above:
> >>>>>>
> >>>>>> IBM United Kingdom Limited
> >>>>>> Registered in England and Wales with number 741598
> >>>>>> Registered office: PO Box 41, North Harbour, Portsmouth, Hants. PO6
> >> 3AU
> >>>>>>
> >>>>>
> >>>>
> >>
> >>
>
>

Reply via email to