Two questions about Async

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Two questions about Async

Stephen Connolly
1. On Flink 1.10 when I look at the topology overview, the AsyncFunctions show non-zero values for Bytes Received; Records Received; Bytes Sent but Records Sent is always 0... yet the next step in the topology shows approx the same Bytes Received as the async sent (modulo minor delays) and a non-zero Records Received. Is the “Records Sent of an AsyncFunction is always displayed as zero” a bug?

2. Is there an Async Sink? Or do I just rewrite my Sink as an AsyncFunction followed by a dummy sink? What’s the recommendation if the sink performing blocking I/O is proven to be the root cause of back pressure?

Thanks in advance for your help
--
Sent from my phone
Reply | Threaded
Open this post in threaded view
|

Re: Two questions about Async

Gary Yao-5
> Bytes Sent but Records Sent is always 0

Sounds like a bug. However, I am unable to reproduce this using the
AsyncIOExample [1]. Can you provide a minimal working example?


> Is there an Async Sink? Or do I just rewrite my Sink as an AsyncFunction
followed by a dummy sink?

You will have to implement your own AsyncFunction to use as a sink. However, the
AsyncFunction operator does not need to be followed by a dummy sink.


> What’s the recommendation if the sink performing blocking I/O is proven to be
the root cause of back pressure?

There are many things that can be done, such as increasing the parallelism or
reducing per-record fixed costs. Note that all sinks are typically dominated by
I/O costs. It is difficult to give a recommendation without knowing details
about your use case and desired consistency guarantees.

Best,
Gary

[1] https://github.com/apache/flink/blob/aa4eb8f0c9ce74e6b92c3d9be5dc8e8cb536239d/flink-examples/flink-examples-streaming/src/main/java/org/apache/flink/streaming/examples/async/AsyncIOExample.java


On Tue, Apr 21, 2020 at 11:06 PM Stephen Connolly
<[hidden email]> wrote:
>
> 1. On Flink 1.10 when I look at the topology overview, the AsyncFunctions show non-zero values for Bytes Received; Records Received; Bytes Sent but Records Sent is always 0... yet the next step in the topology shows approx the same Bytes Received as the async sent (modulo minor delays) and a non-zero Records Received. Is the “Records Sent of an AsyncFunction is always displayed as zero” a bug?
>
> 2. Is there an Async Sink? Or do I just rewrite my Sink as an AsyncFunction followed by a dummy sink? What’s the recommendation if the sink performing blocking I/O is proven to be the root cause of back pressure?
>
> Thanks in advance for your help
> --
> Sent from my phone