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]