[QUERY] EventHub Throttle and TU relationship / Latency details / Partition and TU relationship
See original GitHub issueQuery/Question
I’ve multiple queries:
-
1 TU
is1 MB / sec
or1000 msgs / sec
(I read it somewhere written as1000 API calls / sec
) whichever happens first. Imagine I’ve message of size500
bytes, then I would be able to create anEventDataBatch
containing~2000
msgs (less than 2000 but close to it) and I would be able to send it to EventHub with 1 send calleventProducerClient.send(eventDataBatch)
. In this case, the size ofeventDataBatch
will be ~ 1MB (less than 1 MB but close to it) and I am making 1 API call (but sending ~2000 msgs in that call). Will my request be throttled?Or put in another way, If I know that my per message size is < 1 KB, should I still limit the
eventDataBatch
to only 1000 messages (and utilizing only half of 1MB / sec)?And if the requests are being throttled, how is the application supposed to know about this? There is only a WARNING log. I raised the relevant BUG here: https://github.com/Azure/azure-sdk-for-java/issues/11003
-
Is there a way to know the time EventHub SDK takes to push my
Event
(orEventDataBatch
) to EventHub? I currently have no latency information from SDK. I am calculating it in my own code right now like this:try (com.codahale.metrics.Timer.Context ignored = latency.time()) { // dependency io.dropwizard.metrics:metrics-graphite:4.1.7 eventHubProducerClient.send(eventDataBatch); }
Is this how this is supposed to be done? Also, what is the expected latency while pushing data (one
Event
/EventDataBatch
) to EH? -
I am trying out EventHub SDK Consumer and Producer in a sample application where I consumer from an EventHub A (having 32 partitions, loads of data available, reading from
EventPosition.earliest()
and not storing checkpoints) and pushing the messages unmodified to another EventHub B having 5 partitions. Since each partition can only be maxed out with 1 TU, it should be pointless to have more than 5 TU on EventHub B. However, if I enable Auto-Inflate (with max TU allowed at 20) and keep my Consumer and Producer running, it inflates my EventHub to 20 TU and I can see significant gain in performance (more than double than keeping TU at 5).I am not able to understand this because no partition can utilize the 15 extra TU that are being allocated by Auto-Inflate feature. Just to point it out EventHub B is the only EventHub in that namespace. So the producer EventHub namespace overall only has 5 partitions.
Why is this not a Bug or a feature Request? I couldn’t categorize it as bug / feature request because I might be missing a few details in my understanding.
Information Checklist Kindly make sure that you have added all the following information above and checkoff the required fields otherwise we will treat the issuer as an incomplete report
- Query Added
- Setup information Added
Issue Analytics
- State:
- Created 3 years ago
- Comments:21 (20 by maintainers)
@shubhambhattar, so we are good to close this issue and track the new issue only?
@shubhambhattar, thanks for providing new test data. Can you send me your test namespace so I can check service side metrics and failures? You can reach me from serkar@microsoft.com