Skip to content

Commit 675c348

Browse files
errose28adoroszlai
andauthored
HDDS-15614. Remove Datanode download/pull container replication (apache#10584)
Co-authored-by: Doroszlai, Attila <adoroszlai@apache.org>
1 parent 0eb1c67 commit 675c348

42 files changed

Lines changed: 194 additions & 1999 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/statemachine/DatanodeStateMachine.java

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -70,17 +70,14 @@
7070
import org.apache.hadoop.ozone.container.ec.reconstruction.ECReconstructionCoordinator;
7171
import org.apache.hadoop.ozone.container.ec.reconstruction.ECReconstructionMetrics;
7272
import org.apache.hadoop.ozone.container.ozoneimpl.OzoneContainer;
73-
import org.apache.hadoop.ozone.container.replication.ContainerImporter;
7473
import org.apache.hadoop.ozone.container.replication.ContainerReplicator;
75-
import org.apache.hadoop.ozone.container.replication.DownloadAndImportReplicator;
7674
import org.apache.hadoop.ozone.container.replication.GrpcContainerUploader;
7775
import org.apache.hadoop.ozone.container.replication.MeasuredReplicator;
7876
import org.apache.hadoop.ozone.container.replication.OnDemandContainerReplicationSource;
7977
import org.apache.hadoop.ozone.container.replication.PushReplicator;
8078
import org.apache.hadoop.ozone.container.replication.ReplicationServer.ReplicationConfig;
8179
import org.apache.hadoop.ozone.container.replication.ReplicationSupervisor;
8280
import org.apache.hadoop.ozone.container.replication.ReplicationSupervisorMetrics;
83-
import org.apache.hadoop.ozone.container.replication.SimpleContainerDownloader;
8481
import org.apache.hadoop.ozone.container.upgrade.DataNodeUpgradeFinalizer;
8582
import org.apache.hadoop.ozone.container.upgrade.VersionedDatanodeFeatures;
8683
import org.apache.hadoop.ozone.protocol.commands.SCMCommand;
@@ -125,7 +122,6 @@ public class DatanodeStateMachine implements Closeable {
125122
* constructor in a non-thread-safe way - see HDDS-3116.
126123
*/
127124
private final ReadWriteLock constructionLock = new ReentrantReadWriteLock();
128-
private final MeasuredReplicator pullReplicatorWithMetrics;
129125
private final MeasuredReplicator pushReplicatorWithMetrics;
130126
private final ReplicationSupervisorMetrics replicationSupervisorMetrics;
131127
private final NettyMetrics nettyMetrics;
@@ -195,21 +191,11 @@ public DatanodeStateMachine(HddsDatanodeService hddsDatanodeService,
195191
}
196192
nextHB = new AtomicLong(Time.monotonicNow());
197193

198-
ContainerImporter importer = new ContainerImporter(conf,
199-
container.getContainerSet(),
200-
container.getController(),
201-
container.getVolumeSet(),
202-
volumeChoosingPolicy);
203-
ContainerReplicator pullReplicator = new DownloadAndImportReplicator(
204-
conf, container.getContainerSet(),
205-
importer,
206-
new SimpleContainerDownloader(conf, certClient));
207194
ContainerReplicator pushReplicator = new PushReplicator(conf,
208195
new OnDemandContainerReplicationSource(container.getController()),
209196
new GrpcContainerUploader(conf, certClient, container.getController())
210197
);
211198

212-
pullReplicatorWithMetrics = new MeasuredReplicator(pullReplicator, "pull");
213199
pushReplicatorWithMetrics = new MeasuredReplicator(pushReplicator, "push");
214200

215201
ReplicationConfig replicationConfig =
@@ -266,8 +252,7 @@ public DatanodeStateMachine(HddsDatanodeService hddsDatanodeService,
266252
dnConf.getCommandQueueLimit(), threadNamePrefix))
267253
.addHandler(new DeleteBlocksCommandHandler(getContainer(),
268254
conf, dnConf, threadNamePrefix))
269-
.addHandler(new ReplicateContainerCommandHandler(conf, supervisor,
270-
pullReplicatorWithMetrics, pushReplicatorWithMetrics))
255+
.addHandler(new ReplicateContainerCommandHandler(supervisor, pushReplicatorWithMetrics))
271256
.addHandler(reconstructECContainersCommandHandler)
272257
.addHandler(new DeleteContainerCommandHandler(
273258
dnConf.getContainerDeleteThreads(), clock,
@@ -652,7 +637,7 @@ public EnumCounters<SCMCommandProto.Type> getQueuedCommandCount() {
652637
*/
653638
public synchronized void stopDaemon() {
654639
try {
655-
IOUtils.close(LOG, pushReplicatorWithMetrics, pullReplicatorWithMetrics);
640+
IOUtils.close(LOG, pushReplicatorWithMetrics);
656641
supervisor.stop();
657642
context.setShutdownGracefully();
658643
context.setState(DatanodeStates.SHUTDOWN);

hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/statemachine/commandhandler/ReplicateContainerCommandHandler.java

Lines changed: 6 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,6 @@
1818
package org.apache.hadoop.ozone.container.common.statemachine.commandhandler;
1919

2020
import com.google.common.base.Preconditions;
21-
import java.util.List;
22-
import org.apache.hadoop.hdds.conf.ConfigurationSource;
23-
import org.apache.hadoop.hdds.protocol.DatanodeDetails;
2421
import org.apache.hadoop.hdds.protocol.proto.StorageContainerDatanodeProtocolProtos.SCMCommandProto;
2522
import org.apache.hadoop.hdds.protocol.proto.StorageContainerDatanodeProtocolProtos.SCMCommandProto.Type;
2623
import org.apache.hadoop.ozone.container.common.statemachine.SCMConnectionManager;
@@ -31,32 +28,20 @@
3128
import org.apache.hadoop.ozone.container.replication.ReplicationTask;
3229
import org.apache.hadoop.ozone.protocol.commands.ReplicateContainerCommand;
3330
import org.apache.hadoop.ozone.protocol.commands.SCMCommand;
34-
import org.slf4j.Logger;
35-
import org.slf4j.LoggerFactory;
3631

3732
/**
38-
* Command handler to copy containers from sources.
33+
* Command handler to push containers to a target datanode.
3934
*/
4035
public class ReplicateContainerCommandHandler implements CommandHandler {
4136

42-
static final Logger LOG =
43-
LoggerFactory.getLogger(ReplicateContainerCommandHandler.class);
44-
4537
private ReplicationSupervisor supervisor;
4638

47-
private ContainerReplicator downloadReplicator;
48-
4939
private ContainerReplicator pushReplicator;
5040

5141
private static final String METRIC_NAME = ReplicationTask.METRIC_NAME;
5242

53-
public ReplicateContainerCommandHandler(
54-
ConfigurationSource conf,
55-
ReplicationSupervisor supervisor,
56-
ContainerReplicator downloadReplicator,
57-
ContainerReplicator pushReplicator) {
43+
public ReplicateContainerCommandHandler(ReplicationSupervisor supervisor, ContainerReplicator pushReplicator) {
5844
this.supervisor = supervisor;
59-
this.downloadReplicator = downloadReplicator;
6045
this.pushReplicator = pushReplicator;
6146
}
6247

@@ -70,20 +55,13 @@ public void handle(SCMCommand<?> command, OzoneContainer container,
7055

7156
final ReplicateContainerCommand replicateCommand =
7257
(ReplicateContainerCommand) command;
73-
final List<DatanodeDetails> sourceDatanodes =
74-
replicateCommand.getSourceDatanodes();
7558
final long containerID = replicateCommand.getContainerID();
76-
final DatanodeDetails target = replicateCommand.getTargetDatanode();
77-
78-
Preconditions.checkArgument(!sourceDatanodes.isEmpty() || target != null,
79-
"Replication command is received for container %s "
80-
+ "without source or target datanodes.", containerID);
8159

82-
ContainerReplicator replicator =
83-
replicateCommand.getTargetDatanode() == null ?
84-
downloadReplicator : pushReplicator;
60+
Preconditions.checkArgument(replicateCommand.getTargetDatanode() != null,
61+
"Replication command received for container %s without a target datanode.",
62+
containerID);
8563

86-
ReplicationTask task = new ReplicationTask(replicateCommand, replicator);
64+
ReplicationTask task = new ReplicationTask(replicateCommand, pushReplicator);
8765
supervisor.addTask(task);
8866
}
8967

hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/ozoneimpl/OzoneContainer.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -240,7 +240,6 @@ public OzoneContainer(HddsDatanodeService hddsDatanodeService,
240240
context);
241241

242242
replicationServer = new ReplicationServer(
243-
controller,
244243
conf.getObject(ReplicationConfig.class),
245244
secConf,
246245
certClient,

hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/replication/AbstractReplicationTask.java

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,6 @@ public abstract class AbstractReplicationTask {
4242

4343
private ReplicationCommandPriority priority = NORMAL;
4444

45-
private boolean shouldOnlyRunOnInServiceDatanodes = true;
46-
4745
protected AbstractReplicationTask(long containerID,
4846
long deadlineMsSinceEpoch, long term) {
4947
this(containerID, deadlineMsSinceEpoch, term,
@@ -115,24 +113,6 @@ public ReplicationCommandPriority getPriority() {
115113
return priority;
116114
}
117115

118-
/**
119-
* Returns true if the task should only run on in service datanodes. False
120-
* otherwise.
121-
*/
122-
public boolean shouldOnlyRunOnInServiceDatanodes() {
123-
return shouldOnlyRunOnInServiceDatanodes;
124-
}
125-
126-
/**
127-
* Set whether the task should only run on in service datanodes. Passing false
128-
* allows the task to run on out of service datanodes as well.
129-
* @param runOnInServiceOnly
130-
*/
131-
protected void setShouldOnlyRunOnInServiceDatanodes(
132-
boolean runOnInServiceOnly) {
133-
this.shouldOnlyRunOnInServiceDatanodes = runOnInServiceOnly;
134-
}
135-
136116
/**
137117
* Hook for subclasses to provide info about the command.
138118
* @return string representation of the command

hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/replication/ContainerDownloader.java

Lines changed: 0 additions & 39 deletions
This file was deleted.

hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/replication/CopyContainerResponseStream.java

Lines changed: 0 additions & 48 deletions
This file was deleted.

hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/replication/DownloadAndImportReplicator.java

Lines changed: 0 additions & 108 deletions
This file was deleted.

hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/replication/GrpcContainerUploader.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ protected GrpcReplicationClient createReplicationClient(
104104
throws IOException {
105105
return new GrpcReplicationClient(target.getIpAddress(),
106106
target.getPort(Port.Name.REPLICATION).getValue(),
107-
securityConfig, certClient, compression);
107+
securityConfig, certClient);
108108
}
109109

110110
/**

0 commit comments

Comments
 (0)