congbobo184 opened a new pull request #8881: URL: https://github.com/apache/pulsar/pull/8881
## Motivation in order to handle pending ack persistent. ## implement 1. add the transaction pending ack store, it will handle the pending ack metadata store. 2. when the sub unload, we will replay the pendingAckHandle. 3. we use one manageLedger to store the pending ack metadata by one sub , and replay by this managedLedger open cursor. 4. when we commit or abort the transaction, we will append the marker to the pendingAckStore then we will modify state memory in pendingAckHandle 4. we also modify the in memory state when append fail, because we don't know the persistent state, when we replay it, it will produce the wrong operation. so we append fail, we should wait tc time out or client abort this transaction. 5. we use a timer task to delete the metadata, we judge whether the position of ack stored in metadata is less than the markDeletePosition of sub. when we read commit or abort marker, we can delete directly. ### Verifying this change Add the tests for it 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) ---------------------------------------------------------------- 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. For queries about this service, please contact Infrastructure at: [email protected]
