TakaHiR07 commented on PR #4467: URL: https://github.com/apache/bookkeeper/pull/4467#issuecomment-2244406108
> I think we should fix the Timepoint4 behavior, it will handle all the pendindAddOps, and try to send the data to new replaced bookie. I think this behavior shouldn't use the same thread as before. @horizonzy I think your solution is try to fix this dead lock issue itself, but I am still concerned that whether #3784 would bring out other dead lock risk, because it add so many synchronized in PendingAddOp. Actually, I hold 3 kinds of solution idea. 1. break the current dead lock, which is similar to your solution. 2. revert part of #3784, as this pr modify. 3. revert whole of #3784. Besides, I think your solution is able to fix current dead lock, but maybe result in other problem. As I observe in both early version bookkeeper and pulsar. In the same ledger, PendingAddOp#sendWriteRequest is always in same thread. If we use different "pulsar-io" thread to send data of the same ledger, It seems break the bookkeeper's design. https://github.com/apache/pulsar/blob/fca9c5c392cb72fa15f8d9211e39e1c55afd3281/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/ManagedLedgerImpl.java#L778-L811 https://github.com/apache/pulsar/blob/fca9c5c392cb72fa15f8d9211e39e1c55afd3281/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/ManagedLedgerImpl.java#L357 -- 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]
