[ 
https://issues.apache.org/jira/browse/BEAM-8382?focusedWorklogId=355228&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-355228
 ]

ASF GitHub Bot logged work on BEAM-8382:
----------------------------------------

                Author: ASF GitHub Bot
            Created on: 06/Dec/19 14:35
            Start Date: 06/Dec/19 14:35
    Worklog Time Spent: 10m 
      Work Description: aromanenko-dev commented on issue #9765: 
[WIP][BEAM-8382] Add rate limit policy to KinesisIO.Read
URL: https://github.com/apache/beam/pull/9765#issuecomment-562594176
 
 
   Yes, I think we should be consistent in terms of user API. So, since most 
(all?) of our AWS-based IOs provide a way to build client object, which can be 
configured to use custom retry/backoff policy, we may, at least, want to 
document it properly. 
   
   In the same time, some of the AWS IOs (like DynamoDBIO, SnsIO) already 
provide a method `withRetryConfiguration(RetryConfiguration)` to define retry 
configuration. Under the hood, it actually uses Beam's `BackOff` and own 
implementation of retry cycle. So, I think we need to change it to use internal 
AWS client implementation (as we discussed before). 
   
   In the end, it would be great to have unified API for all AWS-based IOs, at 
least for SDK V2. Though, we should be cautious to change already released 
public API.
 
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


Issue Time Tracking
-------------------

    Worklog Id:     (was: 355228)
    Time Spent: 11.5h  (was: 11h 20m)

> Add polling interval to KinesisIO.Read
> --------------------------------------
>
>                 Key: BEAM-8382
>                 URL: https://issues.apache.org/jira/browse/BEAM-8382
>             Project: Beam
>          Issue Type: Improvement
>          Components: io-java-kinesis
>    Affects Versions: 2.13.0, 2.14.0, 2.15.0
>            Reporter: Jonothan Farr
>            Assignee: Jonothan Farr
>            Priority: Major
>          Time Spent: 11.5h
>  Remaining Estimate: 0h
>
> With the current implementation we are observing Kinesis throttling due to 
> ReadProvisionedThroughputExceeded on the order of hundreds of times per 
> second, regardless of the actual Kinesis throughput. This is because the 
> ShardReadersPool readLoop() method is polling getRecords() as fast as 
> possible.
> From the KDS documentation:
> {quote}Each shard can support up to five read transactions per second.
> {quote}
> and
> {quote}For best results, sleep for at least 1 second (1,000 milliseconds) 
> between calls to getRecords to avoid exceeding the limit on getRecords 
> frequency.
> {quote}
> [https://docs.aws.amazon.com/streams/latest/dev/service-sizes-and-limits.html]
> [https://docs.aws.amazon.com/streams/latest/dev/developing-consumers-with-sdk.html]



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to