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]

Reply via email to