From 9fa8187150a73f5e0264558cf58ec18c2ab3df67 Mon Sep 17 00:00:00 2001 From: dongyifeng Date: Mon, 10 Dec 2018 20:26:36 +0800 Subject: [PATCH] use SnapTreeMap instead of ConcurrentSkipListMap --- processing/pom.xml | 5 +++++ .../apache/druid/segment/incremental/IncrementalIndex.java | 6 +++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/processing/pom.xml b/processing/pom.xml index 542c3f22f602..86d6e4b66f17 100644 --- a/processing/pom.xml +++ b/processing/pom.xml @@ -116,6 +116,11 @@ checker ${checkerframework.version} + + edu.stanford.ppl + snaptree + 0.1 + diff --git a/processing/src/main/java/org/apache/druid/segment/incremental/IncrementalIndex.java b/processing/src/main/java/org/apache/druid/segment/incremental/IncrementalIndex.java index e7700cf09972..f6821763e17f 100644 --- a/processing/src/main/java/org/apache/druid/segment/incremental/IncrementalIndex.java +++ b/processing/src/main/java/org/apache/druid/segment/incremental/IncrementalIndex.java @@ -29,6 +29,7 @@ import com.google.common.collect.Maps; import com.google.common.primitives.Ints; import com.google.common.primitives.Longs; +import edu.stanford.ppl.concurrent.SnapTreeMap; import org.apache.druid.collections.NonBlockingPool; import org.apache.druid.common.config.NullHandling; import org.apache.druid.common.guava.GuavaUtils; @@ -91,7 +92,6 @@ import java.util.concurrent.ConcurrentLinkedDeque; import java.util.concurrent.ConcurrentMap; import java.util.concurrent.ConcurrentNavigableMap; -import java.util.concurrent.ConcurrentSkipListMap; import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicLong; @@ -1251,7 +1251,7 @@ static class RollupFactsHolder implements FactsHolder { this.sortFacts = sortFacts; if (sortFacts) { - this.facts = new ConcurrentSkipListMap<>(incrementalIndexRowComparator); + this.facts = new SnapTreeMap<>(incrementalIndexRowComparator); } else { this.facts = new ConcurrentHashMap<>(); } @@ -1348,7 +1348,7 @@ public PlainFactsHolder(boolean sortFacts, Comparator incre { this.sortFacts = sortFacts; if (sortFacts) { - this.facts = new ConcurrentSkipListMap<>(); + this.facts = new SnapTreeMap<>(); } else { this.facts = new ConcurrentHashMap<>(); }