Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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,6 +18,7 @@
package org.apache.hadoop.hdds.scm;

import org.apache.hadoop.hdds.protocol.DatanodeDetails;
import org.apache.hadoop.hdds.scm.container.ContainerReplica;

import java.io.IOException;
import java.util.Collections;
Expand All @@ -29,7 +30,7 @@
* A PlacementPolicy support choosing datanodes to build
* pipelines or containers with specified constraints.
*/
public interface PlacementPolicy<Replica> {
public interface PlacementPolicy {

default List<DatanodeDetails> chooseDatanodes(
List<DatanodeDetails> excludedNodes,
Expand Down Expand Up @@ -75,8 +76,8 @@ ContainerPlacementStatus validateContainerPlacement(
* @param replicas: Map of replicas with value signifying if
* replica can be copied
*/
Set<Replica> replicasToCopyToFixMisreplication(
Map<Replica, Boolean> replicas);
Set<ContainerReplica> replicasToCopyToFixMisreplication(
Map<ContainerReplica, Boolean> replicas);

/**
* Given a set of replicas of a container which are overreplicated,
Expand All @@ -85,6 +86,6 @@ Set<Replica> replicasToCopyToFixMisreplication(
* @param expectedCountPerUniqueReplica: Replication factor of each
* unique replica
*/
Set<Replica> replicasToRemoveToFixOverreplication(
Set<Replica> replicas, int expectedCountPerUniqueReplica);
Set<ContainerReplica> replicasToRemoveToFixOverreplication(
Set<ContainerReplica> replicas, int expectedCountPerUniqueReplica);
}
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@
* functions which are common to placement policies.
*/
public abstract class SCMCommonPlacementPolicy implements
PlacementPolicy<ContainerReplica> {
PlacementPolicy {
@VisibleForTesting
static final Logger LOG =
LoggerFactory.getLogger(SCMCommonPlacementPolicy.class);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@
import org.apache.hadoop.hdds.conf.ConfigurationSource;
import org.apache.hadoop.hdds.scm.PlacementPolicy;
import org.apache.hadoop.hdds.scm.SCMCommonPlacementPolicy;
import org.apache.hadoop.hdds.scm.container.ContainerReplica;
import org.apache.hadoop.hdds.scm.exceptions.SCMException;
import org.apache.hadoop.hdds.scm.net.NetworkTopology;
import org.apache.hadoop.hdds.scm.node.NodeManager;
Expand All @@ -41,7 +40,7 @@
* can be practically used.
*/
public final class SCMContainerPlacementRandom extends SCMCommonPlacementPolicy
implements PlacementPolicy<ContainerReplica> {
implements PlacementPolicy {
@VisibleForTesting
public static final Logger LOG =
LoggerFactory.getLogger(SCMContainerPlacementRandom.class);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
*/
public class ECMisReplicationHandler extends MisReplicationHandler {
public ECMisReplicationHandler(
PlacementPolicy<ContainerReplica> containerPlacement,
PlacementPolicy containerPlacement,
ConfigurationSource conf, ReplicationManager replicationManager) {
super(containerPlacement, conf, replicationManager);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,12 +52,12 @@ public abstract class MisReplicationHandler implements

public static final Logger LOG =
LoggerFactory.getLogger(MisReplicationHandler.class);
private final PlacementPolicy<ContainerReplica> containerPlacement;
private final PlacementPolicy containerPlacement;
private final long currentContainerSize;
private final ReplicationManager replicationManager;

public MisReplicationHandler(
final PlacementPolicy<ContainerReplica> containerPlacement,
final PlacementPolicy containerPlacement,
final ConfigurationSource conf, ReplicationManager replicationManager) {
this.containerPlacement = containerPlacement;
this.currentContainerSize = (long) conf.getStorageSize(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
public class RatisMisReplicationHandler extends MisReplicationHandler {

public RatisMisReplicationHandler(
PlacementPolicy<ContainerReplica> containerPlacement,
PlacementPolicy containerPlacement,
ConfigurationSource conf, ReplicationManager replicationManager) {
super(containerPlacement, conf, replicationManager);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,6 @@
import org.apache.hadoop.hdds.scm.container.ContainerManager;
import org.apache.hadoop.hdds.scm.container.ContainerManagerImpl;
import org.apache.hadoop.hdds.scm.PlacementPolicyValidateProxy;
import org.apache.hadoop.hdds.scm.container.ContainerReplica;
import org.apache.hadoop.hdds.scm.container.balancer.MoveManager;
import org.apache.hadoop.hdds.scm.container.replication.ContainerReplicaPendingOps;
import org.apache.hadoop.hdds.scm.container.replication.DatanodeCommandCountUpdatedHandler;
Expand Down Expand Up @@ -275,8 +274,8 @@ public final class StorageContainerManager extends ServiceRuntimeInfoImpl
private final OzoneConfiguration configuration;
private SCMContainerMetrics scmContainerMetrics;
private SCMContainerPlacementMetrics placementMetrics;
private PlacementPolicy<ContainerReplica> containerPlacementPolicy;
private PlacementPolicy<ContainerReplica> ecContainerPlacementPolicy;
private PlacementPolicy containerPlacementPolicy;
private PlacementPolicy ecContainerPlacementPolicy;
private PlacementPolicyValidateProxy placementPolicyValidateProxy;
private MetricsSystem ms;
private final Map<String, RatisDropwizardExports> ratisMetricsMap =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,7 @@ public void testECPolicy() throws IOException {
* A dummy container placement implementation for test.
*/
public static class DummyImpl implements
PlacementPolicy<ContainerReplica> {
PlacementPolicy {
@Override
public List<DatanodeDetails> chooseDatanodes(
List<DatanodeDetails> usedNodes,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -207,10 +207,12 @@ public void commandsForFewerThanRequiredNodes() throws IOException {
Pair.of(IN_SERVICE, 3), Pair.of(IN_SERVICE, 4),
Pair.of(IN_SERVICE, 5));
PlacementPolicy placementPolicy = Mockito.mock(PlacementPolicy.class);
List<DatanodeDetails> targetDatanodes = singletonList(
availableReplicas.iterator().next().getDatanodeDetails());
Mockito.when(placementPolicy.chooseDatanodes(
any(), any(), any(),
Mockito.anyInt(), Mockito.anyLong(), Mockito.anyLong()))
.thenReturn(singletonList(availableReplicas.iterator().next()));
.thenReturn(targetDatanodes);
assertThrows(InsufficientDatanodesException.class,
() -> testMisReplication(availableReplicas, Collections.emptyList(),
0, 2, 1));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -110,8 +110,8 @@ protected void setThrowThrottledException(boolean showThrow) {
throwThrottledException.set(showThrow);
}

static PlacementPolicy<?> mockPlacementPolicy() {
PlacementPolicy<?> placementPolicy = Mockito.mock(PlacementPolicy.class);
static PlacementPolicy mockPlacementPolicy() {
PlacementPolicy placementPolicy = Mockito.mock(PlacementPolicy.class);
ContainerPlacementStatus mockedContainerPlacementStatus =
Mockito.mock(ContainerPlacementStatus.class);
Mockito.when(mockedContainerPlacementStatus.isPolicySatisfied())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -345,7 +345,7 @@ private ContainerInfo getMockDeletedContainer(int containerID) {
* to validateContainerPlacement, then it will return an invalid placement.
*/
private static class MockPlacementPolicy implements
PlacementPolicy<ContainerReplica> {
PlacementPolicy {

private UUID misRepWhenDnPresent = null;

Expand Down