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


Reply via email to