From ea22e31b44b12d19646fcade43747f4baaf1dcda Mon Sep 17 00:00:00 2001 From: Jihoon Son Date: Sat, 24 Jun 2017 18:35:34 +0900 Subject: [PATCH 1/3] Make KafkaLookupExtractorFactoryTest fast --- .../KafkaLookupExtractorFactoryTest.java | 53 +++++++++++++------ 1 file changed, 37 insertions(+), 16 deletions(-) diff --git a/extensions-core/kafka-extraction-namespace/src/test/java/io/druid/query/lookup/KafkaLookupExtractorFactoryTest.java b/extensions-core/kafka-extraction-namespace/src/test/java/io/druid/query/lookup/KafkaLookupExtractorFactoryTest.java index e2fe7d6e2676..b91459d5ac59 100644 --- a/extensions-core/kafka-extraction-namespace/src/test/java/io/druid/query/lookup/KafkaLookupExtractorFactoryTest.java +++ b/extensions-core/kafka-extraction-namespace/src/test/java/io/druid/query/lookup/KafkaLookupExtractorFactoryTest.java @@ -47,11 +47,11 @@ import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.modules.junit4.PowerMockRunner; -import java.util.ArrayList; import java.util.Arrays; -import java.util.List; +import java.util.HashSet; import java.util.Map; import java.util.Properties; +import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicLong; @@ -129,18 +129,15 @@ public void testCacheKeyScramblesOnNewData() TOPIC, DEFAULT_PROPERTIES ); - factory.getMapRef().set(ImmutableMap.of()); + factory.getMapRef().set(ImmutableMap.of()); final AtomicLong events = factory.getDoubleEventCount(); final LookupExtractor extractor = factory.get(); - final List byteArrays = new ArrayList<>(n); + final Set byteArrays = new HashSet<>(n); for (int i = 0; i < n; ++i) { - final byte[] myKey = extractor.getCacheKey(); - // Not terribly efficient.. but who cares - for (byte[] byteArray : byteArrays) { - Assert.assertFalse(Arrays.equals(byteArray, myKey)); - } + final ByteArray myKey = new ByteArray(extractor.getCacheKey()); + Assert.assertFalse(byteArrays.contains(myKey)); byteArrays.add(myKey); events.incrementAndGet(); } @@ -156,17 +153,14 @@ public void testCacheKeyScramblesDifferentStarts() TOPIC, DEFAULT_PROPERTIES ); - factory.getMapRef().set(ImmutableMap.of()); + factory.getMapRef().set(ImmutableMap.of()); final AtomicLong events = factory.getDoubleEventCount(); - final List byteArrays = new ArrayList<>(n); + final Set byteArrays = new HashSet<>(n); for (int i = 0; i < n; ++i) { final LookupExtractor extractor = factory.get(); - final byte[] myKey = extractor.getCacheKey(); - // Not terribly efficient.. but who cares - for (byte[] byteArray : byteArrays) { - Assert.assertFalse(Arrays.equals(byteArray, myKey)); - } + final ByteArray myKey = new ByteArray(extractor.getCacheKey()); + Assert.assertFalse(byteArrays.contains(myKey)); byteArrays.add(myKey); events.incrementAndGet(); } @@ -562,4 +556,31 @@ public Boolean answer() throws Throwable } }; } + + private static class ByteArray + { + private final byte[] array; + + ByteArray(byte[] array) + { + this.array = array; + } + + @Override + public int hashCode() + { + return Arrays.hashCode(array); + } + + @Override + public boolean equals(Object o) + { + if (o instanceof ByteArray) + { + final ByteArray that = (ByteArray) o; + return Arrays.equals(this.array, that.array); + } + return false; + } + } } From 45c823ea1c3b201ccce16d52cca04326542b23e4 Mon Sep 17 00:00:00 2001 From: Jihoon Son Date: Sun, 25 Jun 2017 19:45:16 +0900 Subject: [PATCH 2/3] Use list --- .../KafkaLookupExtractorFactoryTest.java | 37 +++---------------- 1 file changed, 6 insertions(+), 31 deletions(-) diff --git a/extensions-core/kafka-extraction-namespace/src/test/java/io/druid/query/lookup/KafkaLookupExtractorFactoryTest.java b/extensions-core/kafka-extraction-namespace/src/test/java/io/druid/query/lookup/KafkaLookupExtractorFactoryTest.java index b91459d5ac59..4c9d0bea20f2 100644 --- a/extensions-core/kafka-extraction-namespace/src/test/java/io/druid/query/lookup/KafkaLookupExtractorFactoryTest.java +++ b/extensions-core/kafka-extraction-namespace/src/test/java/io/druid/query/lookup/KafkaLookupExtractorFactoryTest.java @@ -34,6 +34,7 @@ import kafka.consumer.KafkaStream; import kafka.consumer.TopicFilter; import kafka.javaapi.consumer.ConsumerConnector; +import org.apache.commons.lang.ArrayUtils; import org.easymock.EasyMock; import org.easymock.IAnswer; import org.junit.Assert; @@ -49,6 +50,7 @@ import java.util.Arrays; import java.util.HashSet; +import java.util.List; import java.util.Map; import java.util.Properties; import java.util.Set; @@ -134,9 +136,9 @@ public void testCacheKeyScramblesOnNewData() final LookupExtractor extractor = factory.get(); - final Set byteArrays = new HashSet<>(n); + final Set> byteArrays = new HashSet<>(n); for (int i = 0; i < n; ++i) { - final ByteArray myKey = new ByteArray(extractor.getCacheKey()); + final List myKey = Arrays.asList(ArrayUtils.toObject(extractor.getCacheKey())); Assert.assertFalse(byteArrays.contains(myKey)); byteArrays.add(myKey); events.incrementAndGet(); @@ -156,10 +158,10 @@ public void testCacheKeyScramblesDifferentStarts() factory.getMapRef().set(ImmutableMap.of()); final AtomicLong events = factory.getDoubleEventCount(); - final Set byteArrays = new HashSet<>(n); + final Set> byteArrays = new HashSet<>(n); for (int i = 0; i < n; ++i) { final LookupExtractor extractor = factory.get(); - final ByteArray myKey = new ByteArray(extractor.getCacheKey()); + final List myKey = Arrays.asList(ArrayUtils.toObject(extractor.getCacheKey())); Assert.assertFalse(byteArrays.contains(myKey)); byteArrays.add(myKey); events.incrementAndGet(); @@ -556,31 +558,4 @@ public Boolean answer() throws Throwable } }; } - - private static class ByteArray - { - private final byte[] array; - - ByteArray(byte[] array) - { - this.array = array; - } - - @Override - public int hashCode() - { - return Arrays.hashCode(array); - } - - @Override - public boolean equals(Object o) - { - if (o instanceof ByteArray) - { - final ByteArray that = (ByteArray) o; - return Arrays.equals(this.array, that.array); - } - return false; - } - } } From bf3ea5c40f67d76d2fca4f4c9f74a670e926539b Mon Sep 17 00:00:00 2001 From: Jihoon Son Date: Sun, 25 Jun 2017 19:46:45 +0900 Subject: [PATCH 3/3] Use Bytes --- .../druid/query/lookup/KafkaLookupExtractorFactoryTest.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/extensions-core/kafka-extraction-namespace/src/test/java/io/druid/query/lookup/KafkaLookupExtractorFactoryTest.java b/extensions-core/kafka-extraction-namespace/src/test/java/io/druid/query/lookup/KafkaLookupExtractorFactoryTest.java index 4c9d0bea20f2..13d7f191651c 100644 --- a/extensions-core/kafka-extraction-namespace/src/test/java/io/druid/query/lookup/KafkaLookupExtractorFactoryTest.java +++ b/extensions-core/kafka-extraction-namespace/src/test/java/io/druid/query/lookup/KafkaLookupExtractorFactoryTest.java @@ -26,6 +26,7 @@ import com.google.common.base.Throwables; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; +import com.google.common.primitives.Bytes; import io.druid.jackson.DefaultObjectMapper; import io.druid.java.util.common.StringUtils; import io.druid.server.lookup.namespace.cache.CacheHandler; @@ -34,7 +35,6 @@ import kafka.consumer.KafkaStream; import kafka.consumer.TopicFilter; import kafka.javaapi.consumer.ConsumerConnector; -import org.apache.commons.lang.ArrayUtils; import org.easymock.EasyMock; import org.easymock.IAnswer; import org.junit.Assert; @@ -138,7 +138,7 @@ public void testCacheKeyScramblesOnNewData() final Set> byteArrays = new HashSet<>(n); for (int i = 0; i < n; ++i) { - final List myKey = Arrays.asList(ArrayUtils.toObject(extractor.getCacheKey())); + final List myKey = Bytes.asList(extractor.getCacheKey()); Assert.assertFalse(byteArrays.contains(myKey)); byteArrays.add(myKey); events.incrementAndGet(); @@ -161,7 +161,7 @@ public void testCacheKeyScramblesDifferentStarts() final Set> byteArrays = new HashSet<>(n); for (int i = 0; i < n; ++i) { final LookupExtractor extractor = factory.get(); - final List myKey = Arrays.asList(ArrayUtils.toObject(extractor.getCacheKey())); + final List myKey = Bytes.asList(extractor.getCacheKey()); Assert.assertFalse(byteArrays.contains(myKey)); byteArrays.add(myKey); events.incrementAndGet();