liangyepianzhou opened a new pull request #12521:
URL: https://github.com/apache/pulsar/pull/12521


   ### Motivation
   Optimize the logic on the Transaction Client side.
   Avoid sending and acking messages with timeout  transactions.
   
   ### Modifications
   
   * TransactionImp
   
        *  Add a tool field for CAS to replace State : STATE_UPDATE.
   **When committing and aborted, only the successful cas operation will make 
subsequent judgments, otherwise it will return a failure future**
        *   Implement TimerTasker to execute tasks that replace the state of 
the transaction as Aborted.
   * TransactionBuildImpl
        * In the callback of the build method, call the timer of PulsarClient 
to start a Timeout. Pass in the corresponding transactionImpl (TimeTasker has 
been implemented)
   
   
   ### Verifying this change
   Add a test in TransactionEndToEndTest.
   
   ### 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): (yes / no)
     - The public API: (yes / no)
     - The schema: (yes / no / don't know)
     - The default values of configurations: (yes / no)
     - The wire protocol: (yes / no)
     - The rest endpoints: (yes / no)
     - The admin cli options: (yes / no)
     - Anything that affects deployment: (yes / no / don't know)
   
   ### Documentation  
   - [ ] `no-need-doc` 
     Optimize feature.
   
   


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


Reply via email to