dombizita commented on code in PR #7960:
URL: https://github.com/apache/ozone/pull/7960#discussion_r1977370958


##########
hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/tasks/ReconTaskControllerImpl.java:
##########
@@ -158,18 +158,20 @@ private void 
ignoreFailedTasks(List<ReconOmTask.TaskResult> failedTasks) {
   }
 
   @Override
-  public synchronized void reInitializeTasks(ReconOMMetadataManager 
omMetadataManager) {
+  public synchronized void reInitializeTasks(ReconOMMetadataManager 
omMetadataManager,
+                                             Map<String, ReconOmTask> 
reconOmTaskMap) {

Review Comment:
   Could you please add a java doc for this method? It'd be good to know that 
happens if `reconOmTaskMap` is null, etc.



##########
hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/spi/impl/OzoneManagerServiceProviderImpl.java:
##########
@@ -267,6 +268,34 @@ public void start() {
     reconTaskController.getRegisteredTasks()
         .values()
         .forEach(ReconOmTask::init);
+
+    // Verify if 'OmDeltaRequest' task's lastUpdatedSeqNumber number not 
matching with
+    // lastUpdatedSeqNumber number for any of the OM task, then just run 
reprocess for such tasks.
+    ReconTaskStatusUpdater deltaTaskStatusUpdater =
+        
taskStatusUpdaterManager.getTaskStatusUpdater(OmSnapshotTaskName.OmDeltaRequest.name());
+
+    Map<String, ReconOmTask> reconOmTaskMap = 
reconTaskController.getRegisteredTasks()
+        .entrySet()
+        .stream()
+        .filter(entry -> {
+          String taskName = entry.getKey();
+          ReconOmTask task = entry.getValue();
+          ReconTaskStatusUpdater taskStatusUpdater = 
taskStatusUpdaterManager.getTaskStatusUpdater(taskName);
+
+          return !taskName.equals(OmSnapshotTaskName.OmDeltaRequest.name()) && 
 // Condition 1
+              !taskStatusUpdater.getLastUpdatedSeqNumber()
+                  .equals(deltaTaskStatusUpdater.getLastUpdatedSeqNumber());  
// Condition 2
+        })
+        .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));  
// Collect into desired Map
+    LOG.info("Task details of such tasks whose lastUpdatedSeqNumber number not 
matching with " +
+        "lastUpdatedSeqNumber of 'OmDeltaRequest' task::\n");
+    LOG.info(deltaTaskStatusUpdater.getTaskName() + "->" + 
deltaTaskStatusUpdater.getLastUpdatedSeqNumber());
+    reconOmTaskMap.keySet()
+        .forEach(taskName -> {
+          LOG.info(taskName + "->" + 
taskStatusUpdaterManager.getTaskStatusUpdater(taskName).getLastUpdatedSeqNumber());
+
+        });

Review Comment:
   This logging will happen even if there is no tasks that need to be 
reinitialised? Can we add a check if `reconOmTaskMap` is empty? 



##########
hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/tasks/ReconTaskController.java:
##########
@@ -41,9 +41,11 @@ void consumeOMEvents(OMUpdateEventBatch events,
 
   /**
    * Pass on the handle to a new OM DB instance to the registered tasks.
+   *
    * @param omMetadataManager OM Metadata Manager instance
+   * @param reconOmTaskMap
    */
-  void reInitializeTasks(ReconOMMetadataManager omMetadataManager);
+  void reInitializeTasks(ReconOMMetadataManager omMetadataManager, Map<String, 
ReconOmTask> reconOmTaskMap);

Review Comment:
   Please update the javadoc, what the new `reconOmTaskMap` does and what 
happens if it's null, etc.



##########
hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/tasks/ReconTaskControllerImpl.java:
##########
@@ -158,18 +158,20 @@ private void 
ignoreFailedTasks(List<ReconOmTask.TaskResult> failedTasks) {
   }
 
   @Override
-  public synchronized void reInitializeTasks(ReconOMMetadataManager 
omMetadataManager) {
+  public synchronized void reInitializeTasks(ReconOMMetadataManager 
omMetadataManager,
+                                             Map<String, ReconOmTask> 
reconOmTaskMap) {
     Collection<NamedCallableTask<ReconOmTask.TaskResult>> tasks = new 
ArrayList<>();
+    Map<String, ReconOmTask> localReconOmTaskMap = reconOmTaskMap;
+    if (null == reconOmTaskMap) {

Review Comment:
   nit
   ```suggestion
       if (reconOmTaskMap == null) {
   ```



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