You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "Zhu Zhu (Jira)" <ji...@apache.org> on 2019/09/16 11:27:00 UTC

[jira] [Commented] (FLINK-13056) Optimize region failover performance on calculating vertices to restart

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

Zhu Zhu commented on FLINK-13056:
---------------------------------

Hi [~till.rohrmann], a FastRestartPipelinedRegionStrategy is added. 
I compared the performance for the 2 most common scenarios as well. The result is updated in [this doc|https://docs.google.com/document/d/1-QLxe4FXqXBuxlYsNmNU-R21euoTkzk1JAS6Lvrd-F4/edit#]. 

I think it is very beneficial for streaming jobs which has only pipelined edges. The cost to cache boundary is 0 and the failover processing time reduces significantly to almost 0 ms. The only cost is a bit more time to build the regions.
For jobs with blocking edges, the failover is still much faster. 

I also applied a local patch to make the new strategy work with the adapted region failover strategy (see test case 4). Using current strategy the failover decision time cost is ~1800ms for a 2000 parallelism job with a simple topology like {A--(pipelined)-->B}. Using the new strategy the failover decision time cost is ~0s.

So I think making the faster version as default for streaming jobs should be a better choice.


> Optimize region failover performance on calculating vertices to restart
> -----------------------------------------------------------------------
>
>                 Key: FLINK-13056
>                 URL: https://issues.apache.org/jira/browse/FLINK-13056
>             Project: Flink
>          Issue Type: Improvement
>          Components: Runtime / Coordination
>    Affects Versions: 1.9.0
>            Reporter: Zhu Zhu
>            Assignee: Zhu Zhu
>            Priority: Major
>              Labels: pull-request-available
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> Currently some region boundary structures are calculated each time of a region failover. This calculation can be heavy as its complexity goes up with execution edge count.
> We tested it in a sample case with 8000 vertices and 16,000,000 edges. It takes ~2.0s to calculate vertices to restart.
> (more details in [https://docs.google.com/document/d/197Ou-01h2obvxq8viKqg4FnOnsykOEKxk3r5WrVBPuA/edit?usp=sharing)]
> That's why we'd propose to cache the region boundary structures to improve the region failover performance.



--
This message was sent by Atlassian Jira
(v8.3.2#803003)