liangyepianzhou commented on code in PR #22707:
URL: https://github.com/apache/pulsar/pull/22707#discussion_r1626241035


##########
pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/buffer/impl/InMemTransactionBuffer.java:
##########
@@ -307,6 +307,7 @@ public CompletableFuture<Void> commitTxn(TxnID txnID, long 
lowWaterMark) {
                 txnBuffer.commitAt(committedAtLedgerId, committedAtEntryId);
                 addTxnToTxnIdex(txnID, committedAtLedgerId);
             }
+            updateLastDispatchablePosition(null);

Review Comment:
   >About why set lastDispatchablePosition to null when commit txn, it is 
because of it's hard to determine which position to set, so, set to null to 
make it fallback to search the position from BK.
   
   This is a good way for cache lastDispatchablePosition. There are some ways 
to do that. 
    1. your way
    2. When committing the transaction, keep the previous position because it 
is still the correct position. Then start a task to update, or mark it as 
needing to be updated from BK. Then the next time it is read, return to the 
previous position that is somewhat lagging but still valid. Then read from BK.
   



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