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]
