sodonnel commented on PR #5293:
URL: https://github.com/apache/ozone/pull/5293#issuecomment-1721116085

   > The check of 3 responses here is we want to make sure it can safely delete 
the transaction from the rocksdb table.
   
   But if there only 2 replicas, then this check is wrong. It should wait for 2 
responses.
   
   I am also not sure that just skipping sending deletes to under replicated 
containers will fix this problem in all cases. Containers can be 
under-replicated due to mis-replication and have copies made, or the balancer 
could trigger a new copy to be made. If the goal is to avoid "missing" a 
delete, then what about this sort of scenario:
   
   * 3 replicas, but mis-replicated.
   * Send the deletes to the 3.
   * RM, at about the same time issues a replicate command for 1 just before 
its blocks are deleted. So replica 4 now exists.  * Block are deleted from the 
original 3. Will the logic notice the 4th and clean it up too or does it get 
left with the now orphan block?
   
   My point is that if you are under replicated at the time you process the 
blocks, then there are only 2 containers to remove the block from, and you 
should not wait for a 3rd response, then the under-replication check is not 
needed at all.
   
   My other point is that, I think, there are other opportunities for 
containers to end up missing block deletes with offline replicas, maintenance 
replicas, over replication, under replication and balancing.


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


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to