[ 
https://issues.apache.org/jira/browse/FLINK-41061?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

ASF GitHub Bot updated FLINK-41061:
-----------------------------------
    Labels: pull-request-available  (was: )

> Daily benchmark keeps failing because of excessive runtime of the adaptive 
> partition benchmark
> ----------------------------------------------------------------------------------------------
>
>                 Key: FLINK-41061
>                 URL: https://issues.apache.org/jira/browse/FLINK-41061
>             Project: Flink
>          Issue Type: Bug
>          Components: Benchmarks
>            Reporter: Han Yin
>            Priority: Major
>              Labels: pull-request-available
>         Attachments: flink-main-benchmarks #9173 Console [Jenkins].html
>
>
> {{AdaptivePartitionThroughputBenchmark.mapRebalanceMapRescaleMapSink}} 
> introduces processing skew by sleeping for *1 ms per record* in some subtasks 
> of the downstream Map operators.
> This makes individual benchmark invocations take tens to hundreds of seconds. 
> With *3 forks × (10 warmup + 10 measurement iterations)* for each of the four 
> parameter combinations, the accumulated runtime is excessive.
> In Jenkins build {*}#9173{*}(as attached below), this benchmark ran for *5h 
> 45m* and was still executing when the pipeline reached its {*}6-hour 
> timeout{*}.
> Local testing of the introduction-era version also reproduced long 
> invocations, so this is {*}not a confirmed recent Flink regression{*}.
> h3. Proposed change
> Sleep for {*}1 ms every 100 records{*}, rather than every record, using an 
> independent counter in each slow operator instance.
> Keep the existing data volume, parallelism, topology and checkpoint 
> configuration unchanged. Therefore we can retain artificial processing skew 
> but accelerate the whole process.
> h3. Local validation
> Tested with Flink {{{}855597a{}}}, benchmark {{{}123532a{}}}, macOS ARM64 and 
> JDK 11.0.26.
> With {*}1 fork, no warmup and 1 measurement iteration{*}, average invocation 
> times were
> ||Adaptive partitioner||Max traverse size||Sleep every record||Sleep every 
> 100 records||
> |Disabled|2|220.0 s|2.38 s|
> |Enabled|2|58.2 s|1.10 s|
> |Enabled|6|39.6 s|0.74 s|
>  
> Additional testing with *1 warmup and 3 measurement iterations* showed
>  * Disabled: *1.94–2.03 s*
>  * Enabled, traverse size 2: *0.56–0.64 s*
>  * Enabled, traverse size 6: *0.38–0.41 s*
> All runs completed successfully. The reduced sleep frequency substantially 
> shortened execution while retaining an observable benefit from adaptive 
> partition selection.



--
This message was sent by Atlassian Jira
(v10.3.26#10030026)

Reply via email to