public class DoublesSketchMergeBufferAggregator extends Object implements BufferAggregator
| Constructor and Description | 
|---|
DoublesSketchMergeBufferAggregator(ColumnValueSelector<com.yahoo.sketches.quantiles.DoublesSketch> selector,
                                  int k,
                                  int maxIntermediateSize)  | 
| Modifier and Type | Method and Description | 
|---|---|
void | 
aggregate(ByteBuffer buffer,
         int position)
Aggregates metric values into the given aggregate byte representation
 Implementations of this method must read in the aggregate value from the buffer at the given position,
 aggregate the next element of data and write the updated aggregate value back into the buffer. 
 | 
void | 
close()
Release any resources used by the aggregator 
 | 
Object | 
get(ByteBuffer buffer,
   int position)
Returns the intermediate object representation of the given aggregate. 
 | 
float | 
getFloat(ByteBuffer buffer,
        int position)
Returns the float representation of the given aggregate byte array
 Converts the given byte buffer representation into the intermediate aggregate value. 
 | 
long | 
getLong(ByteBuffer buffer,
       int position)
Returns the long representation of the given aggregate byte array
 Converts the given byte buffer representation into the intermediate aggregate value. 
 | 
void | 
init(ByteBuffer buffer,
    int position)
Initializes the buffer location
 Implementations of this method must initialize the byte buffer at the given position
 Implementations must not change the position, limit or mark of the given buffer
 This method must not exceed the number of bytes returned by  
AggregatorFactory.getMaxIntermediateSize()
 in the corresponding AggregatorFactory | 
void | 
inspectRuntimeShape(RuntimeShapeInspector inspector)
Implementations of this method should call  
inspector.visit() with all fields of this class, which meet two
 conditions:
  1. | 
void | 
relocate(int oldPosition,
        int newPosition,
        ByteBuffer oldBuffer,
        ByteBuffer newBuffer)
Relocates any cached objects. 
 | 
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetDoublepublic DoublesSketchMergeBufferAggregator(ColumnValueSelector<com.yahoo.sketches.quantiles.DoublesSketch> selector, int k, int maxIntermediateSize)
public void init(ByteBuffer buffer, int position)
BufferAggregatorAggregatorFactory.getMaxIntermediateSize()
 in the corresponding AggregatorFactoryinit in interface BufferAggregatorbuffer - byte buffer to initializeposition - offset within the byte buffer for initializationpublic void aggregate(ByteBuffer buffer, int position)
BufferAggregatoraggregate in interface BufferAggregatorbuffer - byte buffer storing the byte array representation of the aggregateposition - offset within the byte buffer at which the current aggregate value is storedpublic Object get(ByteBuffer buffer, int position)
BufferAggregatorget in interface BufferAggregatorbuffer - byte buffer storing the byte array representation of the aggregateposition - offset within the byte buffer at which the aggregate value is storedpublic float getFloat(ByteBuffer buffer, int position)
BufferAggregatorAggregatorFactory.getTypeName() of "float".
 If unimplemented, throwing an UnsupportedOperationException is common and recommended.getFloat in interface BufferAggregatorbuffer - byte buffer storing the byte array representation of the aggregateposition - offset within the byte buffer at which the aggregate value is storedpublic long getLong(ByteBuffer buffer, int position)
BufferAggregatorAggregatorFactory.getTypeName() of "long".
 If unimplemented, throwing an UnsupportedOperationException is common and recommended.getLong in interface BufferAggregatorbuffer - byte buffer storing the byte array representation of the aggregateposition - offset within the byte buffer at which the aggregate value is storedpublic void close()
BufferAggregatorclose in interface BufferAggregatorpublic void relocate(int oldPosition,
                     int newPosition,
                     ByteBuffer oldBuffer,
                     ByteBuffer newBuffer)
BufferAggregatorBufferAggregator.aggregate(ByteBuffer, int)
 calls. This method tells the BufferAggregator that the cached objects at a certain location has been relocated to
 a different location.
 Only used if there is any positional caches/objects in the BufferAggregator implementation.
 If relocate happens to be across multiple new ByteBuffers (say n ByteBuffers), this method should be called
 multiple times(n times) given all the new positions/old positions should exist in newBuffer/OldBuffer.
 Implementations must not change the position, limit or mark of the given bufferrelocate in interface BufferAggregatoroldPosition - old position of a cached object before aggregation buffer relocates to a new ByteBuffer.newPosition - new position of a cached object after aggregation buffer relocates to a new ByteBuffer.oldBuffer - old aggregation buffer.newBuffer - new aggregation buffer.public void inspectRuntimeShape(RuntimeShapeInspector inspector)
BufferAggregatorinspector.visit() with all fields of this class, which meet two
 conditions:
  1. They are used in methods of this class, annotated with CalledFromHotLoop
  2. They are either:
     a. Nullable objects
     b. Instances of HotLoopCallee
     c. Objects, which don't always have a specific class in runtime. For example, a field of type Set could be HashSet or TreeSet in runtime, depending on how
        this instance (the instance on which inspectRuntimeShape() is called) is configured.
     d. ByteBuffer or similar objects, where byte order matters
     e. boolean flags, affecting branch taking
     f. Arrays of objects, meeting any of conditions a-e.
 The default implementation inspects nothing. Classes that implement BufferAggregator are encouraged to
 override this method, following the specification of HotLoopCallee.inspectRuntimeShape(io.druid.query.monomorphicprocessing.RuntimeShapeInspector).
inspectRuntimeShape in interface BufferAggregatorinspectRuntimeShape in interface HotLoopCalleeCopyright © 2011–2018. All rights reserved.