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

Ahmed Hamdy updated FLINK-31872:
--------------------------------
    Description: 
h1. Issue

As part of FLINK-31772

I performed a complete benchmark for {{KinesisStreamsSink}} after configuring 
rate limiting strategy.
It appears that optimum values for rate limiting strategy parameters are 
dependent on use case (shard number/ parallellism/ record thouroughput)
We initially implemeted the {{AIMDRateLimitingStrategy}} in accordance with one 
used for TCP congestion control but since parameters are use case dependent we 
would like to allow sink users to adjust parameters as suitable.
h2. Requirements
 - we *must* allow users to configure increment rate and decrease factor of 
AIMDRateLimitingStrategy for {{KinesisStreamsSink}}
 - we *must* provide backward compatible default values identical to current 
values to introduce no further regressions.

h2. Appendix
h3. Performace Benchmark Results
|Parallelism/Shards/Payload|paralellism|shards|payload|records/sec|Async 
Sink|Async Sink With Configured Ratelimiting Strategy Thourouput (MB/s)|Async 
sink/ Maximum Thourouput|% of Improvement|
|Low/Low/Low|1|1|1024|10000|0.991|1|1|0.9|
|Low/Low/High|1|1|102400|100|0.9943|1|1|0.57|
|Low/Med/Low|1|8|1024|80000|4.12|4.57|0.57125|5.625|
|Low/Med/High|1|8|102400|800|4.35|7.65|0.95625|41.25|
|Med/Low/Low|8|1|1024|20000|0.852|0.846|0.846|-0.6|
|Med/Low/High|8|1|102400|200|0.921|0.867|0.867|-5.4|
|Med/Med/Low|8|8|1024|80000|5.37|4.76|0.595|-7.625|
|Med/Med/High|8|8|102400|800|7.53|7.69|0.96125|2|
|Med/High/Low|8|64|1024|80000|32.5|37.4|0.58438|7.65625|
|Med/High/High|8|64|102400|800|47.27|60.4|0.94375|20.51562|
|High/High/Low|256|256|1024|300000|127|127|0.49609|0|
|High/High/High|256|256|102400|3000|225|246|0.96094|8.20313|

  was:
h1. Issue

As part of FLINK-31772

I performed a complete benchmark for {{KinesisStreamsSink}} after configuring 
rate limiting strategy.
It appears that optimum values for rate limiting strategy parameters are 
dependent on use case (shard number/ parallellism/ record thouroughput)
We initially implemeted the {{AIMDRateLimitingStrategy}} in accordance with one 
used for TCP congestion control but since parameters are use case dependent we 
would like to allow sink users to adjust parameters as suitable. 

h2. Requirements

- we *must* allow users to configure increment rate and decrease factor of 
AIMDRateLimitingStrategy for {{KinesisStreamsSink}}
- we *must* provide backward compatible default values identical to current 
values to introduce no further regressions.


h2. Appendix

h3. Performace Benchmark Results
|Parallelism/Shards/Payload|paralellism|shards|payload|records/sec|Async 
Sink|Async Sink With Configured Ratelimiting Strategy Thourouput (MB/s)|KPL 
Thourouput (MB/s)|Async sink/ Maximum Thourouput|Async sink /KPL|% of 
Improvement|
|Low/Low/Low|1|1|1024|10000|0.991|1|0.958|1|4.2|0.9|
|Low/Low/High|1|1|102400|100|0.9943|1|0.975|1|2.5|0.57|
|Low/Med/Low|1|8|1024|80000|4.12|4.57|6.45|0.57125|-23.5|5.625|
|Low/Med/High|1|8|102400|800|4.35|7.65|7.45|0.95625|2.5|41.25|
|Med/Low/Low|8|1|1024|20000|0.852|0.846|0.545|0.846|30.1|-0.6|
|Med/Low/High|8|1|102400|200|0.921|0.867|0.975|0.867|-10.8|-5.4|
|Med/Med/Low|8|8|1024|80000|5.37|4.76|5.87|0.595|-13.875|-7.625|
|Med/Med/High|8|8|102400|800|7.53|7.69|5.95|0.96125|21.75|2|
|Med/High/Low|8|64|1024|80000|32.5|37.4|40.7|0.58438|-5.15625|7.65625|
|Med/High/High|8|64|102400|800|47.27|60.4|56.27|0.94375|6.45312|20.51562|
|High/High/Low|256|256|1024|300000|127|127|131|0.49609|-1.5625|0|
|High/High/High|256|256|102400|3000|225|246|215|0.96094|12.10938|8.20313|


> Add Support for Configuring AIMD Ratelimiting strategy parameters by Sink 
> users for KinesisStreamsSink
> ------------------------------------------------------------------------------------------------------
>
>                 Key: FLINK-31872
>                 URL: https://issues.apache.org/jira/browse/FLINK-31872
>             Project: Flink
>          Issue Type: Improvement
>          Components: Connectors / Kinesis
>            Reporter: Ahmed Hamdy
>            Assignee: Ahmed Hamdy
>            Priority: Major
>             Fix For: aws-connector-4.2.0
>
>
> h1. Issue
> As part of FLINK-31772
> I performed a complete benchmark for {{KinesisStreamsSink}} after configuring 
> rate limiting strategy.
> It appears that optimum values for rate limiting strategy parameters are 
> dependent on use case (shard number/ parallellism/ record thouroughput)
> We initially implemeted the {{AIMDRateLimitingStrategy}} in accordance with 
> one used for TCP congestion control but since parameters are use case 
> dependent we would like to allow sink users to adjust parameters as suitable.
> h2. Requirements
>  - we *must* allow users to configure increment rate and decrease factor of 
> AIMDRateLimitingStrategy for {{KinesisStreamsSink}}
>  - we *must* provide backward compatible default values identical to current 
> values to introduce no further regressions.
> h2. Appendix
> h3. Performace Benchmark Results
> |Parallelism/Shards/Payload|paralellism|shards|payload|records/sec|Async 
> Sink|Async Sink With Configured Ratelimiting Strategy Thourouput (MB/s)|Async 
> sink/ Maximum Thourouput|% of Improvement|
> |Low/Low/Low|1|1|1024|10000|0.991|1|1|0.9|
> |Low/Low/High|1|1|102400|100|0.9943|1|1|0.57|
> |Low/Med/Low|1|8|1024|80000|4.12|4.57|0.57125|5.625|
> |Low/Med/High|1|8|102400|800|4.35|7.65|0.95625|41.25|
> |Med/Low/Low|8|1|1024|20000|0.852|0.846|0.846|-0.6|
> |Med/Low/High|8|1|102400|200|0.921|0.867|0.867|-5.4|
> |Med/Med/Low|8|8|1024|80000|5.37|4.76|0.595|-7.625|
> |Med/Med/High|8|8|102400|800|7.53|7.69|0.96125|2|
> |Med/High/Low|8|64|1024|80000|32.5|37.4|0.58438|7.65625|
> |Med/High/High|8|64|102400|800|47.27|60.4|0.94375|20.51562|
> |High/High/Low|256|256|1024|300000|127|127|0.49609|0|
> |High/High/High|256|256|102400|3000|225|246|0.96094|8.20313|



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to