|
@@ -32,8 +32,6 @@ import java.util.Map;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
import java.util.Iterator;
|
|
import java.util.Iterator;
|
|
import java.util.LinkedList;
|
|
import java.util.LinkedList;
|
|
-import java.util.ArrayDeque;
|
|
|
|
-import java.util.Queue;
|
|
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -71,12 +69,6 @@ public class DatanodeAdminBackoffMonitor extends DatanodeAdminMonitorBase
|
|
private HashMap<DatanodeDescriptor, HashMap<BlockInfo, Integer>>
|
|
private HashMap<DatanodeDescriptor, HashMap<BlockInfo, Integer>>
|
|
outOfServiceNodeBlocks = new HashMap<>();
|
|
outOfServiceNodeBlocks = new HashMap<>();
|
|
|
|
|
|
- /**
|
|
|
|
- * Any nodes where decommission or maintenance has been cancelled are added
|
|
|
|
- * to this queue for later processing.
|
|
|
|
- */
|
|
|
|
- private final Queue<DatanodeDescriptor> cancelledNodes = new ArrayDeque<>();
|
|
|
|
-
|
|
|
|
/**
|
|
/**
|
|
* The numbe of blocks to process when moving blocks to pendingReplication
|
|
* The numbe of blocks to process when moving blocks to pendingReplication
|
|
* before releasing and reclaiming the namenode lock.
|
|
* before releasing and reclaiming the namenode lock.
|
|
@@ -151,7 +143,7 @@ public class DatanodeAdminBackoffMonitor extends DatanodeAdminMonitorBase
|
|
@Override
|
|
@Override
|
|
public void stopTrackingNode(DatanodeDescriptor dn) {
|
|
public void stopTrackingNode(DatanodeDescriptor dn) {
|
|
getPendingNodes().remove(dn);
|
|
getPendingNodes().remove(dn);
|
|
- cancelledNodes.add(dn);
|
|
|
|
|
|
+ getCancelledNodes().add(dn);
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -232,7 +224,7 @@ public class DatanodeAdminBackoffMonitor extends DatanodeAdminMonitorBase
|
|
"in maintenance or transitioning state. {} nodes pending. {} " +
|
|
"in maintenance or transitioning state. {} nodes pending. {} " +
|
|
"nodes waiting to be cancelled.",
|
|
"nodes waiting to be cancelled.",
|
|
numBlocksChecked, outOfServiceNodeBlocks.size(), getPendingNodes().size(),
|
|
numBlocksChecked, outOfServiceNodeBlocks.size(), getPendingNodes().size(),
|
|
- cancelledNodes.size());
|
|
|
|
|
|
+ getCancelledNodes().size());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -259,8 +251,8 @@ public class DatanodeAdminBackoffMonitor extends DatanodeAdminMonitorBase
|
|
* write lock to prevent the cancelledNodes list being modified externally.
|
|
* write lock to prevent the cancelledNodes list being modified externally.
|
|
*/
|
|
*/
|
|
private void processCancelledNodes() {
|
|
private void processCancelledNodes() {
|
|
- while(!cancelledNodes.isEmpty()) {
|
|
|
|
- DatanodeDescriptor dn = cancelledNodes.poll();
|
|
|
|
|
|
+ while(!getCancelledNodes().isEmpty()) {
|
|
|
|
+ DatanodeDescriptor dn = getCancelledNodes().poll();
|
|
outOfServiceNodeBlocks.remove(dn);
|
|
outOfServiceNodeBlocks.remove(dn);
|
|
pendingRep.remove(dn);
|
|
pendingRep.remove(dn);
|
|
}
|
|
}
|