Skip to content

Commit 2d74f66

Browse files
committed
fix checkstyle
1 parent 096fcba commit 2d74f66

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockPlacementPolicyRackFaultTolerant.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,7 @@ private void chooseEvenlyFromRemainingRacks(Node writer,
166166
List<DatanodeStorageInfo> results, boolean avoidStaleNodes,
167167
EnumMap<StorageType, Integer> storageTypes, int totalReplicaExpected,
168168
NotEnoughReplicasException e) throws NotEnoughReplicasException {
169+
int numResultsOflastChoose = 0;
169170
NotEnoughReplicasException lastException = e;
170171
int bestEffortMaxNodesPerRack = maxNodesPerRack;
171172
while (results.size() != totalReplicaExpected &&
@@ -181,6 +182,7 @@ private void chooseEvenlyFromRemainingRacks(Node writer,
181182
LOG.trace("Excluded nodes: {}", excludedNodes);
182183
LOG.trace("New Excluded nodes: {}", newExcludeNodes);
183184
final int numOfReplicas = totalReplicaExpected - results.size();
185+
numResultsOflastChoose = results.size();
184186
try {
185187
chooseOnce(numOfReplicas, writer, newExcludeNodes, blocksize,
186188
++bestEffortMaxNodesPerRack, results, avoidStaleNodes,
@@ -190,6 +192,14 @@ private void chooseEvenlyFromRemainingRacks(Node writer,
190192
} finally {
191193
excludedNodes.addAll(newExcludeNodes);
192194
}
195+
if (numResultsOflastChoose == results.size()) {
196+
Map<String, Integer> nodesPerRack = new HashMap<>();
197+
for (DatanodeStorageInfo dsInfo : results) {
198+
String rackName = dsInfo.getDatanodeDescriptor().getNetworkLocation();
199+
nodesPerRack.merge(rackName, 1, Integer::sum);
200+
}
201+
bestEffortMaxNodesPerRack = Collections.max(nodesPerRack.values());
202+
}
193203
}
194204

195205
if (results.size() != totalReplicaExpected) {

0 commit comments

Comments
 (0)