Gargi-jais11 commented on PR #11676:
URL: https://github.com/apache/ozone/pull/11676#issuecomment-6460765693

     > 
   - Reconciliation needs to check for a container's DELETED state before 
reporting progress in logs or ICR.
   
   - If a container is moved to DELETED during the reconciliation process, 
reconciler should abort and log a message indicating this instead of a summary 
of the reconciliation work. This is a similar pattern to what the container 
data scanner does already.
   - Reconciler should not send an ICR if the container it is working on is 
deleted, since it did not end up modifying the live replica. The process that 
issued the delete is responsible for the ICR. This also mirrors the scanner.
   
   - Disk balancer needs to clear the container's last scanned timestamp and 
trigger an on-demand data scan. This on-demand scan will send an ICR when it 
completes.
   - A copy is a new container, so information about the original is no longer 
valid.
   - This is similar to what container import already does.
   
   Thanks @errose28 and @ChenSammi. I'll rework the PR with new approach 
mentioned above. 
   
   Few things to note is: 
   The new replica's last scan timestamp is already empty after a DiskBalancer 
import, because the new ContainerData is built with the copy constructor, which 
doesn't carry the timestamp. So as per Ethan's approach only the scan trigger 
is needed.
   
   **One corner case which will still be left after the above approach is:** 
   if reconciliation finishes after the copy but before the swap (or before the 
old replica is marked DELETED), the reconcile ICR reports the repaired replica. 
The post-move scan won't correct SCM, because the copy's stored checksum 
matches its data. Should DiskBalancer send one ICR for the new replica after 
the move, as container import does?
   
   @ChenSammi "ICR is not needed": it isn't needed for the move itself, but it 
is when a reconcile report landed during the move. So on seeing the cases 
should we send ICR?
   
   Also, the on-demand scanner is single-threaded at 5 MB/s per datanode, while 
DiskBalancer moves up to 10 MB/s by default, so long balancing runs will build 
a scan backlog.


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