gianm commented on a change in pull request #8194: HllSketch Merge/Build
BufferAggregators: Speed up init with prebuilt sketch.
URL: https://github.com/apache/incubator-druid/pull/8194#discussion_r308977075
##########
File path:
extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/hll/HllSketchMergeBufferAggregator.java
##########
@@ -60,17 +69,25 @@ public HllSketchMergeBufferAggregator(
this.lgK = lgK;
this.tgtHllType = tgtHllType;
this.size = size;
+ this.emptyUnion = new byte[size];
+
+ //noinspection ResultOfObjectAllocationIgnored (Union writes to
"emptyUnion" as a side effect of construction)
+ new Union(lgK, WritableMemory.wrap(emptyUnion));
}
- @SuppressWarnings("ResultOfObjectAllocationIgnored")
@Override
public void init(final ByteBuffer buf, final int position)
{
- 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.
Review comment:
Agreed, added it back. I put it in the "aggregate" method since that seems
to be the most useful place to put it (it's where Union objects are most
commonly created).
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]