devmadhuu commented on code in PR #8917:
URL: https://github.com/apache/ozone/pull/8917#discussion_r2272145615
##########
hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/tasks/ReconTaskControllerImpl.java:
##########
@@ -227,6 +265,32 @@ public synchronized void
reInitializeTasks(ReconOMMetadataManager omMetadataMana
} catch (CancellationException ce) {
LOG.error("Some tasks were cancelled with exception", ce);
}
+
+ if (isRunSuccessful.get()) {
+ try {
+ reconDBProvider.replaceStagedDb(stagedReconDBProvider);
+ reconNamespaceSummaryManager.reinitialize(reconDBProvider);
+ reconContainerMetadataManager.reinitialize(reconDBProvider);
+ reprocessTaskStatus.setLastTaskRunStatus(0);
+ reprocessTaskStatus.recordRunCompletion();
Review Comment:
This need to be done carefully, because this is just switchover part and
tasks already completed their reprocess logic above, so this whole
operation/process should be either complete failed or complete success. In case
of successful switchover only of STAGING DB to PROD DB, we can treat whole
process as success and then only individual tasks status for reprocess should
be updated as success else not. so need to refactor a code little bit for above
`.thenAccept` code block.
##########
hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/tasks/ReconTaskControllerImpl.java:
##########
@@ -227,6 +265,32 @@ public synchronized void
reInitializeTasks(ReconOMMetadataManager omMetadataMana
} catch (CancellationException ce) {
LOG.error("Some tasks were cancelled with exception", ce);
}
+
+ if (isRunSuccessful.get()) {
+ try {
+ reconDBProvider.replaceStagedDb(stagedReconDBProvider);
+ reconNamespaceSummaryManager.reinitialize(reconDBProvider);
+ reconContainerMetadataManager.reinitialize(reconDBProvider);
+ reprocessTaskStatus.setLastTaskRunStatus(0);
+ reprocessTaskStatus.recordRunCompletion();
+ LOG.info("Re-initialization of tasks completed successfully.");
+ } catch (Exception e) {
+ LOG.error("Re-initialization of tasks failed.", e);
+ reprocessTaskStatus.setLastTaskRunStatus(-1);
Review Comment:
So similarly as mentioned above, not just STAGING DB switchover task status
to be updated here, but also need to update the status of individual task
reprocess status as well.
##########
hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/tasks/ReconTaskControllerImpl.java:
##########
@@ -227,6 +265,32 @@ public synchronized void
reInitializeTasks(ReconOMMetadataManager omMetadataMana
} catch (CancellationException ce) {
LOG.error("Some tasks were cancelled with exception", ce);
}
+
+ if (isRunSuccessful.get()) {
+ try {
+ reconDBProvider.replaceStagedDb(stagedReconDBProvider);
+ reconNamespaceSummaryManager.reinitialize(reconDBProvider);
+ reconContainerMetadataManager.reinitialize(reconDBProvider);
+ reprocessTaskStatus.setLastTaskRunStatus(0);
+ reprocessTaskStatus.recordRunCompletion();
+ LOG.info("Re-initialization of tasks completed successfully.");
+ } catch (Exception e) {
+ LOG.error("Re-initialization of tasks failed.", e);
+ reprocessTaskStatus.setLastTaskRunStatus(-1);
+ reprocessTaskStatus.recordRunCompletion();
+ // reinitialize the Recon OM tasks with the original DB provider
+ try {
+ reconNamespaceSummaryManager.reinitialize(reconDBProvider);
+ reconContainerMetadataManager.reinitialize(reconDBProvider);
+ } catch (IOException ex) {
+ LOG.error("Re-initialization of task manager failed.", e);
+ }
+ }
+ } else {
+ LOG.error("Reprocess of task has failed.");
+ reprocessTaskStatus.setLastTaskRunStatus(-1);
+ reprocessTaskStatus.recordRunCompletion();
Review Comment:
Sameway here also , not just STAGING DB switchover task status to be updated
here, but also need to update the status of individual task reprocess status as
well.
##########
hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/tasks/ReconTaskControllerImpl.java:
##########
@@ -178,12 +193,33 @@ public synchronized void
reInitializeTasks(ReconOMMetadataManager omMetadataMana
}
ReconConstants.resetTableTruncatedFlags();
+ ReconTaskStatusUpdater reprocessTaskStatus =
taskStatusUpdaterManager.getTaskStatusUpdater(REPROCESS_STAGING);
Review Comment:
I think, we need to rename this task or step for STAGING DB switchover
success/failed because REPROCESS step for tasks will be success/failed on
individual level, and that we need to still do at each task level as done
currently already in .`thenAccept` block. so for STAGING DB switchover
success/failed, we need to just track.
##########
hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/tasks/ReconTaskControllerImpl.java:
##########
@@ -227,6 +265,32 @@ public synchronized void
reInitializeTasks(ReconOMMetadataManager omMetadataMana
} catch (CancellationException ce) {
LOG.error("Some tasks were cancelled with exception", ce);
}
+
+ if (isRunSuccessful.get()) {
+ try {
+ reconDBProvider.replaceStagedDb(stagedReconDBProvider);
+ reconNamespaceSummaryManager.reinitialize(reconDBProvider);
+ reconContainerMetadataManager.reinitialize(reconDBProvider);
+ reprocessTaskStatus.setLastTaskRunStatus(0);
+ reprocessTaskStatus.recordRunCompletion();
+ LOG.info("Re-initialization of tasks completed successfully.");
+ } catch (Exception e) {
+ LOG.error("Re-initialization of tasks failed.", e);
+ reprocessTaskStatus.setLastTaskRunStatus(-1);
+ reprocessTaskStatus.recordRunCompletion();
+ // reinitialize the Recon OM tasks with the original DB provider
+ try {
+ reconNamespaceSummaryManager.reinitialize(reconDBProvider);
+ reconContainerMetadataManager.reinitialize(reconDBProvider);
Review Comment:
Also pls try reducing code duplication.
--
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]