sumitagrawl commented on code in PR #8887:
URL: https://github.com/apache/ozone/pull/8887#discussion_r2270374099
##########
hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/ozoneimpl/ContainerReader.java:
##########
@@ -261,6 +268,29 @@ public void verifyAndFixupContainerData(ContainerData
containerData)
}
}
+ private boolean isMatchedLastLoadedECContainer(
+ KeyValueContainer kvContainer, WitnessedContainerMetadataStore
containerMetadataStore) throws IOException {
+ if (null != containerMetadataStore &&
kvContainer.getContainerData().getReplicaIndex() != 0) {
+ ContainerCreateInfo containerCreateInfo =
containerMetadataStore.getContainerCreateInfoTable()
+
.get(ContainerID.valueOf(kvContainer.getContainerData().getContainerID()));
+ // check for EC container replica index matching if db entry is present
for container as last loaded,
+ // and delete if not matched, ignoring replica index -1 as no previous
replica index information
+ if (null != containerCreateInfo && containerCreateInfo.getReplicaIndex()
>= 0
+ && containerCreateInfo.getReplicaIndex() !=
kvContainer.getContainerData().getReplicaIndex()) {
+ LOG.info("EC Container {} with replica index {} present at path {} is
not matched with DB replica index {}," +
+ " deleting the container data.",
+ kvContainer.getContainerData().getContainerID(),
+ kvContainer.getContainerData().getReplicaIndex(),
+ kvContainer.getContainerData().getContainerPath(),
+ containerCreateInfo.getReplicaIndex());
+ KeyValueContainerUtil.removeContainer(kvContainer.getContainerData(),
hddsVolume.getConf());
Review Comment:
As discussion conclusion,
1. Ignore loading EC container if replica index do not match as present in
DB. Do not delete the container as decision can not be made considering data
loss.
2. while add container to memory, avoid updating container CreateInfo DB if
valid replica index is already present, i.e. if -1, update with correct replica
index as current behavior. Else avoid updating the table.
--
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]