This is an automated email from the ASF dual-hosted git repository.

himanshug pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-druid.git


The following commit(s) were added to refs/heads/master by this push:
     new ec9d182  updated to use the latest sketches-core-0.12.0 (#6381)
ec9d182 is described below

commit ec9d1827a05f4179f2189eac32287e14287d6126
Author: Alexander Saydakov <sayda...@oath.com>
AuthorDate: Tue Oct 23 11:20:19 2018 -0700

    updated to use the latest sketches-core-0.12.0 (#6381)
---
 extensions-core/datasketches/pom.xml               |   2 +-
 .../hll/HllSketchBuildBufferAggregator.java        |   3 +-
 .../hll/HllSketchMergeBufferAggregator.java        |   7 +-
 .../datasketches/hll/HllSketchObjectStrategy.java  |   3 +-
 .../DoublesSketchBuildBufferAggregator.java        |   3 +-
 .../DoublesSketchMergeBufferAggregator.java        |   3 +-
 .../quantiles/DoublesSketchObjectStrategy.java     |   4 +-
 .../datasketches/theta/SketchAggregator.java       |  14 ++-
 .../datasketches/theta/SketchBufferAggregator.java |   3 +-
 .../theta/SketchHolderObjectStrategy.java          |   3 +-
 .../datasketches/theta/SynchronizedUnion.java      | 133 ---------------------
 .../ArrayOfDoublesSketchBuildBufferAggregator.java |   7 +-
 .../ArrayOfDoublesSketchMergeBufferAggregator.java |   7 +-
 .../tuple/ArrayOfDoublesSketchObjectStrategy.java  |   3 +-
 .../tuple/ArrayOfDoublesSketchAggregationTest.java |   1 +
 15 files changed, 39 insertions(+), 157 deletions(-)

diff --git a/extensions-core/datasketches/pom.xml 
b/extensions-core/datasketches/pom.xml
index 1abb026..ef44977 100644
--- a/extensions-core/datasketches/pom.xml
+++ b/extensions-core/datasketches/pom.xml
@@ -38,7 +38,7 @@
     <dependency>
       <groupId>com.yahoo.datasketches</groupId>
       <artifactId>sketches-core</artifactId>
-      <version>0.10.3</version>
+      <version>0.12.0</version>
     </dependency>
     <dependency>
       <groupId>org.apache.commons</groupId>
diff --git 
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/hll/HllSketchBuildBufferAggregator.java
 
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/hll/HllSketchBuildBufferAggregator.java
index cab8019..bd2d047 100644
--- 
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/hll/HllSketchBuildBufferAggregator.java
+++ 
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/hll/HllSketchBuildBufferAggregator.java
@@ -20,6 +20,7 @@
 package org.apache.druid.query.aggregation.datasketches.hll;
 
 import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
 import java.util.IdentityHashMap;
 import java.util.concurrent.locks.Lock;
 import java.util.concurrent.locks.ReadWriteLock;
@@ -135,7 +136,7 @@ public class HllSketchBuildBufferAggregator implements 
BufferAggregator
 
   private WritableMemory getMemory(final ByteBuffer buf)
   {
-    return memCache.computeIfAbsent(buf, b -> WritableMemory.wrap(b));
+    return memCache.computeIfAbsent(buf, b -> WritableMemory.wrap(b, 
ByteOrder.LITTLE_ENDIAN));
   }
 
   /**
diff --git 
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/hll/HllSketchMergeBufferAggregator.java
 
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/hll/HllSketchMergeBufferAggregator.java
index 3477bb0..8e72d23 100644
--- 
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/hll/HllSketchMergeBufferAggregator.java
+++ 
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/hll/HllSketchMergeBufferAggregator.java
@@ -20,6 +20,7 @@
 package org.apache.druid.query.aggregation.datasketches.hll;
 
 import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
 import java.util.concurrent.locks.Lock;
 import java.util.concurrent.locks.ReadWriteLock;
 
@@ -66,7 +67,7 @@ public class HllSketchMergeBufferAggregator implements 
BufferAggregator
   @Override
   public void init(final ByteBuffer buf, final int position)
   {
-    final WritableMemory mem = 
WritableMemory.wrap(buf).writableRegion(position, size);
+    final WritableMemory mem = WritableMemory.wrap(buf, 
ByteOrder.LITTLE_ENDIAN).writableRegion(position, size);
     // Not necessary to keep the constructed object since it is cheap to 
reconstruct by wrapping the memory.
     // The objects are not cached as in BuildBufferAggregator since they never 
exceed the max size and never move.
     // So it is easier to reconstruct them by wrapping memory then to keep 
position-to-object mappings. 
@@ -85,7 +86,7 @@ public class HllSketchMergeBufferAggregator implements 
BufferAggregator
     if (sketch == null) {
       return;
     }
-    final WritableMemory mem = 
WritableMemory.wrap(buf).writableRegion(position, size);
+    final WritableMemory mem = WritableMemory.wrap(buf, 
ByteOrder.LITTLE_ENDIAN).writableRegion(position, size);
     final Lock lock = 
stripedLock.getAt(HllSketchBuildBufferAggregator.lockIndex(position)).writeLock();
     lock.lock();
     try {
@@ -105,7 +106,7 @@ public class HllSketchMergeBufferAggregator implements 
BufferAggregator
   @Override
   public Object get(final ByteBuffer buf, final int position)
   {
-    final WritableMemory mem = 
WritableMemory.wrap(buf).writableRegion(position, size);
+    final WritableMemory mem = WritableMemory.wrap(buf, 
ByteOrder.LITTLE_ENDIAN).writableRegion(position, size);
     final Lock lock = 
stripedLock.getAt(HllSketchBuildBufferAggregator.lockIndex(position)).readLock();
     lock.lock();
     try {
diff --git 
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/hll/HllSketchObjectStrategy.java
 
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/hll/HllSketchObjectStrategy.java
index 2f8ab0d..6ae54f9 100644
--- 
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/hll/HllSketchObjectStrategy.java
+++ 
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/hll/HllSketchObjectStrategy.java
@@ -20,6 +20,7 @@
 package org.apache.druid.query.aggregation.datasketches.hll;
 
 import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
 
 import com.yahoo.memory.Memory;
 import com.yahoo.sketches.hll.HllSketch;
@@ -46,7 +47,7 @@ public class HllSketchObjectStrategy implements 
ObjectStrategy<HllSketch>
   @Override
   public HllSketch fromByteBuffer(final ByteBuffer buf, final int size)
   {
-    return HllSketch.wrap(Memory.wrap(buf).region(buf.position(), size));
+    return HllSketch.wrap(Memory.wrap(buf, 
ByteOrder.LITTLE_ENDIAN).region(buf.position(), size));
   }
 
   @Override
diff --git 
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/quantiles/DoublesSketchBuildBufferAggregator.java
 
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/quantiles/DoublesSketchBuildBufferAggregator.java
index 48cd622..a1e5216 100644
--- 
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/quantiles/DoublesSketchBuildBufferAggregator.java
+++ 
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/quantiles/DoublesSketchBuildBufferAggregator.java
@@ -28,6 +28,7 @@ import 
org.apache.druid.query.monomorphicprocessing.RuntimeShapeInspector;
 import org.apache.druid.segment.ColumnValueSelector;
 
 import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
 import java.util.IdentityHashMap;
 
 public class DoublesSketchBuildBufferAggregator implements BufferAggregator
@@ -112,7 +113,7 @@ public class DoublesSketchBuildBufferAggregator implements 
BufferAggregator
 
   private WritableMemory getMemory(final ByteBuffer buffer)
   {
-    return memCache.computeIfAbsent(buffer, buf -> WritableMemory.wrap(buf));
+    return memCache.computeIfAbsent(buffer, buf -> WritableMemory.wrap(buf, 
ByteOrder.LITTLE_ENDIAN));
   }
 
   private void putSketch(final ByteBuffer buffer, final int position, final 
UpdateDoublesSketch sketch)
diff --git 
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/quantiles/DoublesSketchMergeBufferAggregator.java
 
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/quantiles/DoublesSketchMergeBufferAggregator.java
index 337c1d7..ffe9009 100644
--- 
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/quantiles/DoublesSketchMergeBufferAggregator.java
+++ 
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/quantiles/DoublesSketchMergeBufferAggregator.java
@@ -22,7 +22,6 @@ package 
org.apache.druid.query.aggregation.datasketches.quantiles;
 import com.yahoo.memory.WritableMemory;
 import com.yahoo.sketches.quantiles.DoublesSketch;
 import com.yahoo.sketches.quantiles.DoublesUnion;
-import com.yahoo.sketches.quantiles.DoublesUnionBuilder;
 import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
 import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
 import org.apache.druid.query.aggregation.BufferAggregator;
@@ -105,7 +104,7 @@ public class DoublesSketchMergeBufferAggregator implements 
BufferAggregator
     final WritableMemory oldMem = 
getMemory(oldBuffer).writableRegion(oldPosition, maxIntermediateSize);
     if (union.isSameResource(oldMem)) { // union was not relocated on heap
       final WritableMemory newMem = 
getMemory(newBuffer).writableRegion(newPosition, maxIntermediateSize);
-      union = DoublesUnionBuilder.wrap(newMem);
+      union = DoublesUnion.wrap(newMem);
     }
     putUnion(newBuffer, newPosition, union);
 
diff --git 
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/quantiles/DoublesSketchObjectStrategy.java
 
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/quantiles/DoublesSketchObjectStrategy.java
index aa66f27..618799d 100644
--- 
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/quantiles/DoublesSketchObjectStrategy.java
+++ 
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/quantiles/DoublesSketchObjectStrategy.java
@@ -22,9 +22,11 @@ package 
org.apache.druid.query.aggregation.datasketches.quantiles;
 import com.yahoo.memory.Memory;
 import com.yahoo.sketches.quantiles.DoublesSketch;
 import it.unimi.dsi.fastutil.bytes.ByteArrays;
+
 import org.apache.druid.segment.data.ObjectStrategy;
 
 import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
 
 public class DoublesSketchObjectStrategy implements 
ObjectStrategy<DoublesSketch>
 {
@@ -41,7 +43,7 @@ public class DoublesSketchObjectStrategy implements 
ObjectStrategy<DoublesSketch
     if (numBytes == 0) {
       return DoublesSketchOperations.EMPTY_SKETCH;
     }
-    return DoublesSketch.wrap(Memory.wrap(buffer).region(buffer.position(), 
numBytes));
+    return DoublesSketch.wrap(Memory.wrap(buffer, 
ByteOrder.LITTLE_ENDIAN).region(buffer.position(), numBytes));
   }
 
   @Override
diff --git 
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/theta/SketchAggregator.java
 
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/theta/SketchAggregator.java
index 8142eb3..075d8c7 100644
--- 
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/theta/SketchAggregator.java
+++ 
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/theta/SketchAggregator.java
@@ -42,7 +42,7 @@ public class SketchAggregator implements Aggregator
 
   private void initUnion()
   {
-    union = new SynchronizedUnion((Union) 
SetOperation.builder().setNominalEntries(size).build(Family.UNION));
+    union = (Union) 
SetOperation.builder().setNominalEntries(size).build(Family.UNION);
   }
 
   @Override
@@ -52,10 +52,12 @@ public class SketchAggregator implements Aggregator
     if (update == null) {
       return;
     }
-    if (union == null) {
-      initUnion();
+    synchronized (this) {
+      if (union == null) {
+        initUnion();
+      }
+      updateUnion(union, update);
     }
-    updateUnion(union, update);
   }
 
   @Override
@@ -69,7 +71,9 @@ public class SketchAggregator implements Aggregator
     //however, advantage of ordered sketch is that they are faster to "union" 
later
     //given that results from the aggregator will be combined further, it is 
better
     //to return the ordered sketch here
-    return SketchHolder.of(union.getResult(true, null));
+    synchronized (this) {
+      return SketchHolder.of(union.getResult(true, null));
+    }
   }
 
   @Override
diff --git 
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/theta/SketchBufferAggregator.java
 
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/theta/SketchBufferAggregator.java
index b5ff6c0..de8e67e 100644
--- 
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/theta/SketchBufferAggregator.java
+++ 
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/theta/SketchBufferAggregator.java
@@ -30,6 +30,7 @@ import 
org.apache.druid.query.monomorphicprocessing.RuntimeShapeInspector;
 import org.apache.druid.segment.BaseObjectColumnValueSelector;
 
 import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
 import java.util.IdentityHashMap;
 
 public class SketchBufferAggregator implements BufferAggregator
@@ -155,7 +156,7 @@ public class SketchBufferAggregator implements 
BufferAggregator
   {
     WritableMemory mem = memCache.get(buffer);
     if (mem == null) {
-      mem = WritableMemory.wrap(buffer);
+      mem = WritableMemory.wrap(buffer, ByteOrder.LITTLE_ENDIAN);
       memCache.put(buffer, mem);
     }
     return mem;
diff --git 
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/theta/SketchHolderObjectStrategy.java
 
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/theta/SketchHolderObjectStrategy.java
index 539b572..3878a72 100644
--- 
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/theta/SketchHolderObjectStrategy.java
+++ 
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/theta/SketchHolderObjectStrategy.java
@@ -26,6 +26,7 @@ import org.apache.druid.segment.data.ObjectStrategy;
 
 import javax.annotation.Nullable;
 import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
 
 public class SketchHolderObjectStrategy implements ObjectStrategy<SketchHolder>
 {
@@ -49,7 +50,7 @@ public class SketchHolderObjectStrategy implements 
ObjectStrategy<SketchHolder>
       return SketchHolder.EMPTY;
     }
 
-    return SketchHolder.of(Memory.wrap(buffer).region(buffer.position(), 
numBytes));
+    return SketchHolder.of(Memory.wrap(buffer, 
ByteOrder.LITTLE_ENDIAN).region(buffer.position(), numBytes));
   }
 
   @Override
diff --git 
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/theta/SynchronizedUnion.java
 
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/theta/SynchronizedUnion.java
deleted file mode 100644
index 1403a9d..0000000
--- 
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/theta/SynchronizedUnion.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.druid.query.aggregation.datasketches.theta;
-
-import com.yahoo.memory.Memory;
-import com.yahoo.memory.WritableMemory;
-import com.yahoo.sketches.Family;
-import com.yahoo.sketches.theta.CompactSketch;
-import com.yahoo.sketches.theta.Sketch;
-import com.yahoo.sketches.theta.Union;
-
-/**
- */
-public class SynchronizedUnion extends Union
-{
-  private final Union delegate;
-
-  public SynchronizedUnion(Union delegate)
-  {
-    this.delegate = delegate;
-  }
-
-  @Override
-  public synchronized void update(Sketch sketchIn)
-  {
-    delegate.update(sketchIn);
-  }
-
-  @Override
-  public synchronized void update(Memory mem)
-  {
-    delegate.update(mem);
-  }
-
-  @Override
-  public synchronized void update(long datum)
-  {
-    delegate.update(datum);
-  }
-
-  @Override
-  public synchronized void update(double datum)
-  {
-    delegate.update(datum);
-  }
-
-  @Override
-  public synchronized void update(String datum)
-  {
-    delegate.update(datum);
-  }
-
-  @Override
-  @SuppressWarnings("ParameterPackage")
-  public synchronized void update(byte[] data)
-  {
-    delegate.update(data);
-  }
-
-  @Override
-  @SuppressWarnings("ParameterPackage")
-  public synchronized void update(int[] data)
-  {
-    delegate.update(data);
-  }
-
-  @Override
-  @SuppressWarnings("ParameterPackage")
-  public synchronized void update(char[] chars)
-  {
-    delegate.update(chars);
-  }
-
-  @Override
-  public synchronized void update(long[] data)
-  {
-    delegate.update(data);
-  }
-
-  @Override
-  public synchronized CompactSketch getResult(boolean b, WritableMemory memory)
-  {
-    return delegate.getResult(b, memory);
-  }
-
-  @Override
-  public synchronized CompactSketch getResult()
-  {
-    return delegate.getResult();
-  }
-
-  @Override
-  public synchronized byte[] toByteArray()
-  {
-    return delegate.toByteArray();
-  }
-
-  @Override
-  public synchronized void reset()
-  {
-    delegate.reset();
-  }
-
-  @Override
-  public synchronized boolean isSameResource(Memory mem)
-  {
-    return delegate.isSameResource(mem);
-  }
-
-  @Override
-  public synchronized Family getFamily()
-  {
-    return delegate.getFamily();
-  }
-
-}
diff --git 
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/tuple/ArrayOfDoublesSketchBuildBufferAggregator.java
 
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/tuple/ArrayOfDoublesSketchBuildBufferAggregator.java
index aa0cf39..051d59f 100644
--- 
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/tuple/ArrayOfDoublesSketchBuildBufferAggregator.java
+++ 
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/tuple/ArrayOfDoublesSketchBuildBufferAggregator.java
@@ -31,6 +31,7 @@ import org.apache.druid.segment.DimensionSelector;
 import org.apache.druid.segment.data.IndexedInts;
 
 import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
 import java.util.List;
 import java.util.concurrent.locks.Lock;
 import java.util.concurrent.locks.ReadWriteLock;
@@ -69,7 +70,7 @@ public class ArrayOfDoublesSketchBuildBufferAggregator 
implements BufferAggregat
   @Override
   public void init(final ByteBuffer buf, final int position)
   {
-    final WritableMemory mem = WritableMemory.wrap(buf);
+    final WritableMemory mem = WritableMemory.wrap(buf, 
ByteOrder.LITTLE_ENDIAN);
     final WritableMemory region = mem.writableRegion(position, 
maxIntermediateSize);
     new 
ArrayOfDoublesUpdatableSketchBuilder().setNominalEntries(nominalEntries)
         .setNumberOfValues(valueSelectors.length)
@@ -91,7 +92,7 @@ public class ArrayOfDoublesSketchBuildBufferAggregator 
implements BufferAggregat
     // Wrapping memory and ArrayOfDoublesSketch is inexpensive compared to 
sketch operations.
     // Maintaining a cache of wrapped objects per buffer position like in 
Theta sketch aggregator
     // might might be considered, but it would increase complexity including 
relocate() support.
-    final WritableMemory mem = WritableMemory.wrap(buf);
+    final WritableMemory mem = WritableMemory.wrap(buf, 
ByteOrder.LITTLE_ENDIAN);
     final WritableMemory region = mem.writableRegion(position, 
maxIntermediateSize);
     final Lock lock = stripedLock.getAt(lockIndex(position)).writeLock();
     lock.lock();
@@ -118,7 +119,7 @@ public class ArrayOfDoublesSketchBuildBufferAggregator 
implements BufferAggregat
   @Override
   public Object get(final ByteBuffer buf, final int position)
   {
-    final WritableMemory mem = WritableMemory.wrap(buf);
+    final WritableMemory mem = WritableMemory.wrap(buf, 
ByteOrder.LITTLE_ENDIAN);
     final WritableMemory region = mem.writableRegion(position, 
maxIntermediateSize);
     final Lock lock = stripedLock.getAt(lockIndex(position)).readLock();
     lock.lock();
diff --git 
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/tuple/ArrayOfDoublesSketchMergeBufferAggregator.java
 
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/tuple/ArrayOfDoublesSketchMergeBufferAggregator.java
index af6d3c7..f96280d 100644
--- 
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/tuple/ArrayOfDoublesSketchMergeBufferAggregator.java
+++ 
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/tuple/ArrayOfDoublesSketchMergeBufferAggregator.java
@@ -30,6 +30,7 @@ import 
org.apache.druid.query.monomorphicprocessing.RuntimeShapeInspector;
 import org.apache.druid.segment.BaseObjectColumnValueSelector;
 
 import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
 import java.util.concurrent.locks.Lock;
 import java.util.concurrent.locks.ReadWriteLock;
 
@@ -65,7 +66,7 @@ public class ArrayOfDoublesSketchMergeBufferAggregator 
implements BufferAggregat
   @Override
   public void init(final ByteBuffer buf, final int position)
   {
-    final WritableMemory mem = WritableMemory.wrap(buf);
+    final WritableMemory mem = WritableMemory.wrap(buf, 
ByteOrder.LITTLE_ENDIAN);
     final WritableMemory region = mem.writableRegion(position, 
maxIntermediateSize);
     new ArrayOfDoublesSetOperationBuilder().setNominalEntries(nominalEntries)
         .setNumberOfValues(numberOfValues).buildUnion(region);
@@ -86,7 +87,7 @@ public class ArrayOfDoublesSketchMergeBufferAggregator 
implements BufferAggregat
     // Wrapping memory and ArrayOfDoublesUnion is inexpensive compared to 
union operations.
     // Maintaining a cache of wrapped objects per buffer position like in 
Theta sketch aggregator
     // might might be considered, but it would increase complexity including 
relocate() support.
-    final WritableMemory mem = WritableMemory.wrap(buf);
+    final WritableMemory mem = WritableMemory.wrap(buf, 
ByteOrder.LITTLE_ENDIAN);
     final WritableMemory region = mem.writableRegion(position, 
maxIntermediateSize);
     final Lock lock = 
stripedLock.getAt(ArrayOfDoublesSketchBuildBufferAggregator.lockIndex(position)).writeLock();
     lock.lock();
@@ -110,7 +111,7 @@ public class ArrayOfDoublesSketchMergeBufferAggregator 
implements BufferAggregat
   @Override
   public Object get(final ByteBuffer buf, final int position)
   {
-    final WritableMemory mem = WritableMemory.wrap(buf);
+    final WritableMemory mem = WritableMemory.wrap(buf, 
ByteOrder.LITTLE_ENDIAN);
     final WritableMemory region = mem.writableRegion(position, 
maxIntermediateSize);
     final Lock lock = 
stripedLock.getAt(ArrayOfDoublesSketchBuildBufferAggregator.lockIndex(position)).readLock();
     lock.lock();
diff --git 
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/tuple/ArrayOfDoublesSketchObjectStrategy.java
 
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/tuple/ArrayOfDoublesSketchObjectStrategy.java
index e2157da..aceef65 100644
--- 
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/tuple/ArrayOfDoublesSketchObjectStrategy.java
+++ 
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/tuple/ArrayOfDoublesSketchObjectStrategy.java
@@ -26,6 +26,7 @@ import org.apache.druid.segment.data.ObjectStrategy;
 
 import javax.annotation.Nullable;
 import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
 
 public class ArrayOfDoublesSketchObjectStrategy implements 
ObjectStrategy<ArrayOfDoublesSketch>
 {
@@ -47,7 +48,7 @@ public class ArrayOfDoublesSketchObjectStrategy implements 
ObjectStrategy<ArrayO
   @Override
   public ArrayOfDoublesSketch fromByteBuffer(final ByteBuffer buffer, final 
int numBytes)
   {
-    return 
ArrayOfDoublesSketches.wrapSketch(Memory.wrap(buffer).region(buffer.position(), 
numBytes));
+    return ArrayOfDoublesSketches.wrapSketch(Memory.wrap(buffer, 
ByteOrder.LITTLE_ENDIAN).region(buffer.position(), numBytes));
   }
 
   @Override
diff --git 
a/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/tuple/ArrayOfDoublesSketchAggregationTest.java
 
b/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/tuple/ArrayOfDoublesSketchAggregationTest.java
index 9e7d23e..e7abdcf 100644
--- 
a/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/tuple/ArrayOfDoublesSketchAggregationTest.java
+++ 
b/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/tuple/ArrayOfDoublesSketchAggregationTest.java
@@ -200,6 +200,7 @@ public class ArrayOfDoublesSketchAggregationTest
             "      \"name\": \"union\",",
             "      \"operation\": \"UNION\",",
             "      \"nominalEntries\": 1024,",
+            "      \"numberOfValues\": 2,",
             "      \"fields\": [{\"type\": \"fieldAccess\", \"fieldName\": 
\"sketch\"}, {\"type\": \"fieldAccess\", \"fieldName\": \"sketch\"}]",
             "    }},",
             "    {\"type\": \"arrayOfDoublesSketchToEstimate\", \"name\": 
\"intersection\", \"field\": {",


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@druid.apache.org
For additional commands, e-mail: commits-h...@druid.apache.org

Reply via email to