Jason918 opened a new pull request #12874: URL: https://github.com/apache/pulsar/pull/12874
### Motivation Currently, when broker receive "Producer" command, it will check the topic if "isBacklogQuotaExceeded". While in `PersistentTopic#isBacklogQuotaExceeded`, `isTimeBacklogExceeded` is used, in which will turns to a blocking operation if "isPreciseTimeBasedBacklogQuotaCheck" is set as true. The blocking operations in pulsar io threads may impact broker performance, this PR optimized this blocking procedure to async mode. ### Modifications Add "CompletableFuture<Boolean> checkTimeBacklogExceeded()" in PersistentTopic for the async check procedure. Update corresponding method calls to async mode in `ServerCnx#handleProducer`. ### Verifying this change - [ ] Make sure that the change passes the CI checks. This change is already covered by existing tests, such as org.apache.pulsar.broker.admin.TopicPoliciesTest ### Does this pull request potentially affect one of the following parts: *If `yes` was chosen, please highlight the changes* - Dependencies (does it add or upgrade a dependency): (no) - The public API: (no) - The schema: (no) - The default values of configurations: (no) - The wire protocol: (no) - The rest endpoints: (no) - The admin cli options: (no) - Anything that affects deployment: (no) ### Documentation Check the box below and label this PR (if you have committer privilege). Need to update docs? - [x] `no-need-doc` Only code optimize. -- 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: commits-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org