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

Andreas Bube commented on FLINK-39137:
--------------------------------------

[~jingjia88], feel free to grab this one.

One could argue that the existing _source.reader.empty-records-fetch-interval_ 
setting would address the issue described in most cases. Unfortunately, I 
haven't had the time to verify whether it resolves the issue in my case.

As for adding a new non-empty variant of the setting, that would align with the 
precedent set by the DynamoDB stream source connector, which has both 
_flink.dynamodbstreams.getrecords.empty.mindelay_ and 
_flink.dynamodbstreams.getrecords.nonempty.mindelay_ settings.


 I've got this 
[commit|https://github.com/bube/flink-connector-aws/commit/ed31053c4d74cb588b06492c30d57a4d2c5e93e6]
 with a suggested fix.

> Add configurable delay between non-empty GetRecords calls in Kinesis source
> ---------------------------------------------------------------------------
>
>                 Key: FLINK-39137
>                 URL: https://issues.apache.org/jira/browse/FLINK-39137
>             Project: Flink
>          Issue Type: Improvement
>          Components: Connectors / AWS
>    Affects Versions: 1.20.3, 2.2.0, 2.1.1, 2.3.0
>            Reporter: Andreas Bube
>            Priority: Minor
>
> Kinesis {{GetRecords}} quota is easy to exhaust (5 calls/sec/shard limit). 
> With multiple consumers on the same stream/shard, one eager reader can starve 
> others.
> *Proposed change:* Add a new Kinesis Streams source config option to throttle 
> polling after successful (non-empty) fetches:
>  * {{source.reader.nonempty-records-fetch-interval}}
>  ** {{Duration type}}
>  ** Disabled by default (preserves current behavior)



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

Reply via email to