Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
426164d
HDDS-13891
Oct 24, 2025
04fa39e
HDDS-13891
Oct 24, 2025
f065e91
HDDS-13891
Oct 24, 2025
2b6de75
HDDS-13891. PMD issues
Oct 27, 2025
b0f77aa
HDDS-13891. checkstyle issues
Oct 27, 2025
844891e
HDDS-13891. Test code
Oct 28, 2025
34a9609
HDDS-13891. Build issue fixed
Nov 6, 2025
587638a
HDDS-13891. Batch processing for performance improvement.
Nov 6, 2025
6da44f3
HDDS-13891. Fixing failing tests.
Nov 7, 2025
1be4e3f
HDDS-13891. Fixed failing test
Nov 7, 2025
0a2a29b
HDDS-13891. Updated solution implementation based on refactored code …
Nov 21, 2025
d2d0141
HDDS-13891. Updated solution implementation based on refactored code …
Nov 21, 2025
d2990f8
HDDS-13891. Fixed failed tests and wrote new tests.
Nov 21, 2025
96578c5
HDDS-13891. Fixed findbugs errors.
Nov 21, 2025
37ca75e
HDDS-13891. Fixed failed test cases.
Nov 23, 2025
174a55f
HDDS-13891. Remove unused old code.
Nov 24, 2025
be641f6
HDDS-13891. Remove unused old code.
Nov 24, 2025
acf218b
HDDS-13891. Fixed pmd and findbugs.
Nov 24, 2025
4541173
HDDS-13891. Added REPLICA_MISMATCH computation logic to ContainerHeal…
Nov 24, 2025
eca50cb
HDDS-13891. Remove unused old code.
Nov 24, 2025
c442768
Merge remote-tracking branch 'origin/master' into HDDS-13891
Feb 19, 2026
d2ff60c
HDDS-13891. Removed container health task old V1 code and made sampli…
Feb 20, 2026
40e0ed9
HDDS-13891. Fixed robot test failure.
Feb 20, 2026
1ae5f2f
HDDS-13891. Fixed test failure.
Feb 20, 2026
62bdef0
HDDS-13891. Fixed review comments for refactoring and test code.
Feb 21, 2026
14d1c38
HDDS-13891. Fixed checkstyle issues.
Feb 21, 2026
c689a13
HDDS-13891. Added back the upgrade action claseses deleted by mistake.
Feb 27, 2026
44a2a18
HDDS-13891. Added back the upgrade action claseses deleted by mistake.
Feb 27, 2026
46401ff
HDDS-13891. Added back the upgrade action claseses deleted by mistake.
Feb 27, 2026
91fd644
HDDS-13891. Failed tests.
Feb 27, 2026
b67f397
HDDS-13891. Failed tests.
Feb 27, 2026
423ad62
HDDS-13891. Failed tests.
Feb 28, 2026
1f0d5a3
HDDS-13891. Failed tests.
Feb 28, 2026
65b1737
HDDS-13891. Remove formatted change from ozone-default.xml.
Feb 28, 2026
294ed28
HDDS-13891. Remove formatted changes.
Feb 28, 2026
0244599
HDDS-13891. Fixed build error.
Feb 28, 2026
23e9667
HDDS-13891. Added performance tests and results of test in PR descrip…
Mar 1, 2026
4882fe5
HDDS-13891. Fixed review comments.
Mar 4, 2026
2a13be0
HDDS-13891. Fixed review comments.
Mar 9, 2026
1af2f32
HDDS-13891. Fixed review comments.
Mar 9, 2026
e036902
HDDS-13891. Fixed failed robot tetss.
Mar 10, 2026
72a1b67
HDDS-13891. Fixed review comments.
Mar 16, 2026
75f5544
Merge remote-tracking branch 'origin/master' into HDDS-13891
Mar 23, 2026
775e282
HDDS-13891. Fixed review comments.
Mar 23, 2026
548b0f7
HDDS-13891. Fixed failed test.
Mar 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,11 @@
package org.apache.hadoop.hdds.scm.container.replication;

/**
* A class which extents ReplicationQueue and does nothing. This is used when
* A class which extends ReplicationQueue and does nothing. This is used when
* checking containers in a read-only mode, where we don't want to queue them
* for replication.
*/
public class NullReplicationQueue extends ReplicationQueue {
public class MonitoringReplicationQueue extends ReplicationQueue {

@Override
public void enqueue(ContainerHealthResult.UnderReplicatedHealthResult
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -189,8 +189,8 @@ public class ReplicationManager implements SCMService, ContainerReplicaPendingOp
private final UnderReplicatedProcessor underReplicatedProcessor;
private final OverReplicatedProcessor overReplicatedProcessor;
private final HealthCheck containerCheckChain;
private final ReplicationQueue nullReplicationQueue =
new NullReplicationQueue();
private final ReplicationQueue noOpsReplicationQueue =
new MonitoringReplicationQueue();

/**
* Constructs ReplicationManager instance with the given configuration.
Expand Down Expand Up @@ -853,18 +853,24 @@ protected void processContainer(ContainerInfo containerInfo,
protected boolean processContainer(ContainerInfo containerInfo,
ReplicationQueue repQueue, ReplicationManagerReport report,
boolean readOnly) throws ContainerNotFoundException {
ContainerID containerID = containerInfo.containerID();
Set<ContainerReplica> replicas = containerManager.getContainerReplicas(
containerID);
List<ContainerReplicaOp> pendingOps =
containerReplicaPendingOps.getPendingOps(containerID);
return processContainer(containerInfo, replicas, pendingOps, repQueue, report,
readOnly);
}

protected boolean processContainer(ContainerInfo containerInfo,
Set<ContainerReplica> replicas, List<ContainerReplicaOp> pendingOps,
ReplicationQueue repQueue, ReplicationManagerReport report,
boolean readOnly) throws ContainerNotFoundException {
synchronized (containerInfo) {
// Reset health state to HEALTHY before processing this container
report.resetContainerHealthState();

ContainerID containerID = containerInfo.containerID();
final boolean isEC = isEC(containerInfo.getReplicationConfig());

Set<ContainerReplica> replicas = containerManager.getContainerReplicas(
containerID);
List<ContainerReplicaOp> pendingOps =
containerReplicaPendingOps.getPendingOps(containerID);

ContainerCheckRequest checkRequest = new ContainerCheckRequest.Builder()
.setContainerInfo(containerInfo)
.setContainerReplicas(replicas)
Expand Down Expand Up @@ -1006,7 +1012,7 @@ public ContainerHealthResult getContainerReplicationHealth(
public boolean checkContainerStatus(ContainerInfo containerInfo,
ReplicationManagerReport report) throws ContainerNotFoundException {
report.increment(containerInfo.getState());
return processContainer(containerInfo, nullReplicationQueue, report, true);
return processContainer(containerInfo, noOpsReplicationQueue, report, true);
}

/**
Expand Down
15 changes: 15 additions & 0 deletions hadoop-ozone/integration-test-recon/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,11 @@
<artifactId>hdds-interface-client</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.ozone</groupId>
<artifactId>hdds-interface-server</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.ozone</groupId>
<artifactId>hdds-server-framework</artifactId>
Expand Down Expand Up @@ -209,6 +214,16 @@
<proc>none</proc>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<configuration>
<ignoredUnusedDeclaredDependencies>
<ignoredUnusedDeclaredDependency>org.mockito:mockito-inline:jar</ignoredUnusedDeclaredDependency>
<ignoredUnusedDeclaredDependency>org.mockito:mockito-junit-jupiter:jar</ignoredUnusedDeclaredDependency>
</ignoredUnusedDeclaredDependencies>
</configuration>
</plugin>
</plugins>
</build>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,9 +39,7 @@
import org.apache.hadoop.ozone.recon.api.ContainerEndpoint;
import org.apache.hadoop.ozone.recon.api.types.KeyMetadata;
import org.apache.hadoop.ozone.recon.api.types.KeysResponse;
import org.apache.hadoop.ozone.recon.persistence.ContainerHealthSchemaManager;
import org.apache.hadoop.ozone.recon.recovery.ReconOMMetadataManager;
import org.apache.hadoop.ozone.recon.scm.ReconContainerManager;
import org.apache.hadoop.ozone.recon.spi.impl.OzoneManagerServiceProviderImpl;
import org.apache.hadoop.ozone.recon.tasks.ReconTaskControllerImpl;
import org.apache.ozone.test.GenericTestUtils;
Expand Down Expand Up @@ -215,16 +213,13 @@ public void testContainerEndpointForOBSBucket() throws Exception {
private Response getContainerEndpointResponse(long containerId) {
OzoneStorageContainerManager reconSCM =
recon.getReconServer().getReconStorageContainerManager();
ReconContainerManager reconContainerManager =
(ReconContainerManager) reconSCM.getContainerManager();
ContainerHealthSchemaManager containerHealthSchemaManager =
reconContainerManager.getContainerSchemaManager();
ReconOMMetadataManager omMetadataManagerInstance =
(ReconOMMetadataManager)
recon.getReconServer().getOzoneManagerServiceProvider()
.getOMMetadataManagerInstance();
ContainerEndpoint containerEndpoint =
new ContainerEndpoint(reconSCM, containerHealthSchemaManager,
new ContainerEndpoint(reconSCM,
null, // ContainerHealthSchemaManager - not needed for this test
recon.getReconServer().getReconNamespaceSummaryManager(),
recon.getReconServer().getReconContainerMetadataManager(),
omMetadataManagerInstance);
Expand Down
Loading