Repository: kylin Updated Branches: refs/heads/master 76cbfede9 -> dd855a512
minor, add more test case for HLLC Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/dd855a51 Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/dd855a51 Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/dd855a51 Branch: refs/heads/master Commit: dd855a512f5d70e1734a4637e3dfee554a40aaf4 Parents: 76cbfed Author: Yang Li <liy...@apache.org> Authored: Wed Apr 27 07:05:01 2016 +0800 Committer: Yang Li <liy...@apache.org> Committed: Wed Apr 27 07:05:35 2016 +0800 ---------------------------------------------------------------------- .../kylin/measure/hllc/HyperLogLogPlusCounter.java | 2 ++ .../apache/kylin/measure/hll/HyperLogLogCounterTest.java | 11 +++++++++++ 2 files changed, 13 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/kylin/blob/dd855a51/core-metadata/src/main/java/org/apache/kylin/measure/hllc/HyperLogLogPlusCounter.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/measure/hllc/HyperLogLogPlusCounter.java b/core-metadata/src/main/java/org/apache/kylin/measure/hllc/HyperLogLogPlusCounter.java index b5028d6..4f9755b 100644 --- a/core-metadata/src/main/java/org/apache/kylin/measure/hllc/HyperLogLogPlusCounter.java +++ b/core-metadata/src/main/java/org/apache/kylin/measure/hllc/HyperLogLogPlusCounter.java @@ -71,6 +71,7 @@ public class HyperLogLogPlusCounter implements Serializable, Comparable<HyperLog public void clear() { byte zero = (byte) 0; Arrays.fill(registers, zero); + singleBucket = -1; } public void add(int value) { @@ -276,6 +277,7 @@ public class HyperLogLogPlusCounter implements Serializable, Comparable<HyperLog public void readRegistersArray(ByteBuffer in) { in.get(registers, 0, m); + singleBucket = Integer.MIN_VALUE; } private int getRegisterIndexSize() { http://git-wip-us.apache.org/repos/asf/kylin/blob/dd855a51/core-metadata/src/test/java/org/apache/kylin/measure/hll/HyperLogLogCounterTest.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/test/java/org/apache/kylin/measure/hll/HyperLogLogCounterTest.java b/core-metadata/src/test/java/org/apache/kylin/measure/hll/HyperLogLogCounterTest.java index e96b9d0..e7602a9 100644 --- a/core-metadata/src/test/java/org/apache/kylin/measure/hll/HyperLogLogCounterTest.java +++ b/core-metadata/src/test/java/org/apache/kylin/measure/hll/HyperLogLogCounterTest.java @@ -46,6 +46,17 @@ public class HyperLogLogCounterTest { int errorCount3 = 0; @Test + public void testOneAdd() throws IOException { + HyperLogLogPlusCounter hllc = new HyperLogLogPlusCounter(14); + HyperLogLogPlusCounter one = new HyperLogLogPlusCounter(14); + for (int i = 0; i < 1000000; i++) { + one.clear(); + one.add(rand1.nextInt()); + hllc.merge(one); + } + } + + @Test public void testPeekLength() throws IOException { HyperLogLogPlusCounter hllc = new HyperLogLogPlusCounter(10); HyperLogLogPlusCounter copy = new HyperLogLogPlusCounter(10);