From a2254e7bff2d8d943d35dbaa50159a0224abe174 Mon Sep 17 00:00:00 2001 From: Wei-Chiu Chuang Date: Sun, 7 Oct 2018 13:05:25 -0700 Subject: [PATCH] ISSUE-64. Hadoop 3.0 NN drops replicas silently. --- .../SimulatedMultiStorageFSDataset.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/dynamometer-infra/src/main/java/com/linkedin/dynamometer/SimulatedMultiStorageFSDataset.java b/dynamometer-infra/src/main/java/com/linkedin/dynamometer/SimulatedMultiStorageFSDataset.java index 54cc38bf86..b6975b0990 100644 --- a/dynamometer-infra/src/main/java/com/linkedin/dynamometer/SimulatedMultiStorageFSDataset.java +++ b/dynamometer-infra/src/main/java/com/linkedin/dynamometer/SimulatedMultiStorageFSDataset.java @@ -26,11 +26,13 @@ import java.io.OutputStream; import java.nio.channels.ClosedChannelException; import java.util.ArrayList; +import java.util.Comparator; import java.util.HashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.TreeMap; import javax.management.NotCompliantMBeanException; import javax.management.ObjectName; @@ -332,7 +334,19 @@ public boolean isOnTransientStorage() { */ private static class SimulatedBPStorage { private long used; // in bytes - private final Map blockMap = new HashMap<>(); + private static final Comparator LONG_AND_BLOCK_COMPARATOR + = new Comparator() { + + @Override + public int compare(Object o1, Object o2) { + long lookup = ((Block) o1).getBlockId(); + long stored = ((Block) o2).getBlockId(); + return Long.compare(lookup, stored); + } + }; + + private final Map blockMap = + new TreeMap<>(LONG_AND_BLOCK_COMPARATOR); long getUsed() { return used;