HDDS-7056. EC: Ensure replica index is maintained when replicating a container (#3627)
diff --git a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/keyvalue/KeyValueContainerData.java b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/keyvalue/KeyValueContainerData.java
index df37de5..19a13a6 100644
--- a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/keyvalue/KeyValueContainerData.java
+++ b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/keyvalue/KeyValueContainerData.java
@@ -122,6 +122,7 @@
this.numPendingDeletionBlocks = new AtomicLong(0);
this.deleteTransactionId = 0;
this.schemaVersion = source.getSchemaVersion();
+ this.replicaIndex = source.getReplicaIndex();
}
/**
diff --git a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/TestKeyValueContainerData.java b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/TestKeyValueContainerData.java
index 86701bb..2edf8b0 100644
--- a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/TestKeyValueContainerData.java
+++ b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/TestKeyValueContainerData.java
@@ -97,6 +97,7 @@
kvData.setContainerDBType(containerDBType);
kvData.setChunksPath(path);
kvData.setMetadataPath(path);
+ kvData.setReplicaIndex(4);
kvData.incrReadBytes(10);
kvData.incrWriteBytes(10);
kvData.incrReadCount();
@@ -121,6 +122,12 @@
assertEquals(datanodeId.toString(), kvData.getOriginNodeId());
assertEquals(VersionedDatanodeFeatures.SchemaV3.chooseSchemaVersion(conf),
kvData.getSchemaVersion());
+
+ KeyValueContainerData newKvData = new KeyValueContainerData(kvData);
+ assertEquals(kvData.getReplicaIndex(), newKvData.getReplicaIndex());
+ assertEquals(0, newKvData.getNumPendingDeletionBlocks());
+ assertEquals(0, newKvData.getDeleteTransactionId());
+ assertEquals(kvData.getSchemaVersion(), newKvData.getSchemaVersion());
}
}