[ 
https://issues.apache.org/jira/browse/FLINK-12536?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16874735#comment-16874735
 ] 

Piotr Nowojski commented on FLINK-12536:
----------------------------------------

> As far as I understand, this affects only the non-credit-based model, which 
>is supported but meant to be used only in rare cases and to be removed at some 
>point.

I agree it's not a very big issue because it affects only non credit based 
model, still if we can improve it and some contributor is willing to work, I 
think that's fine.

> In any healthy setup, we have extremely few buffers to read after alignment, 
>which should not be so performance critical that it would warrant a bigger 
>addition in code complexity

I would say that "In any healthy setup _usually_ we have extremely few buffer". 
Load spikes, hick ups and catching ups after restoring from state can and will 
happen even in the most healthy setup. Secondly writing/reading even a couple 
of buffers can block network stack (and whole mailbox) for tens of seconds - 
not usually, but on a daily basis.

> The new implementation means that I/O is now queues behind other potentially 
>large I/O ops

That one indeed might cause some regressions in other scenarios. I haven't 
though this through, but even in the current setup, those IOs are interfering 
with one another, especially with non SSDs setups (but that's still true to 
some extent for SSDs). I would still prefer to have a degree of control about 
the IO operations, by setting the number of writer/reader threads and enqueue 
operations, while keeping the network stack non blocking.

As I wrote at the beginning, I think this is a rather low priority issue, so if 
we do not want to take risks here since this is non-default obsoleted code 
path, I'm fine with not fixing this.

> Make BufferOrEventSequence#getNext() non-blocking
> -------------------------------------------------
>
>                 Key: FLINK-12536
>                 URL: https://issues.apache.org/jira/browse/FLINK-12536
>             Project: Flink
>          Issue Type: Sub-task
>          Components: Runtime / Network
>    Affects Versions: 1.9.0
>            Reporter: Piotr Nowojski
>            Assignee: Congxian Qiu(klion26)
>            Priority: Major
>              Labels: pull-request-available
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> Currently it is non-blocking in case of credit-based flow control (default), 
> however for \{{SpilledBufferOrEventSequence}} it is blocking on reading from 
> file. We might want to consider reimplementing it to be non blocking with 
> {{CompletableFuture<?> isAvailable()}} method.
>  
> Otherwise we will block mailbox processing for the duration of reading from 
> file - for example we will block processing time timers and potentially in 
> the future network flushes.
>  
> This is not a high priority change, since it affects non-default 
> configuration option AND at the moment only processing time timers are 
> planned to be moved to the mailbox for 1.9.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to