KKcorps opened a new pull request, #19526:
URL: https://github.com/apache/pinot/pull/19526

   ## Summary
   
   Fixes shared Kinesis request budgets introduced in #18531. After a consumer 
configured at `0.25` RPS closes, the remaining consumers can return to their 
configured rate instead of staying capped until JVM restart. Consumers with 
different connection namespaces no longer throttle each other, and concurrent 
registrations cannot overwrite a stricter rate.
   
   Each consumer owns lazy registrations for its shard/operation budgets. 
Registration and removal recompute the minimum active rate atomically per key; 
permit waiting stays outside that update. Closing the last consumer drops all 
consumer references but retains idle permit timing for one hour, so short-lived 
consumers cannot bypass rate limiting by reopening.
   
   The key now includes region, endpoint override, and configured credential 
namespace (role ARN, explicit access-key ID, or default credential chain), in 
addition to stream/shard/operation. This requires no new AWS requests or IAM 
permissions. Different credentials for the same actual stream may use separate 
budgets; JVM-wide default-chain consumers share a namespace. The module README 
documents these boundaries and the existing per-JVM scope.
   
   ## Validation
   
   - `KinesisConsumerTest`: 13 tests passed in the targeted Maven reactor on 
JDK 25.
   - Regressions cover rate recovery and cleanup, fractional admission, 
namespace isolation, concurrent registration/removal, close/reopen permit debt, 
failed client close, and rejection after close.
   - Module formatting, Checkstyle, license checks, and compiler warning check 
completed.
   - Independent reviews covered configuration, state/concurrency, 
architecture, performance, correctness, tests, API naming, and scope.
   
   No AWS integration or throughput benchmark was run. Already-reserved permits 
retain their previous wait time after a rate change. Existing configuration 
keys, defaults, and public constructors are unchanged.
   


-- 
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.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to