Class NormalSketch

java.lang.Object
com.yahoo.vespa.objects.Selectable
com.yahoo.vespa.objects.Identifiable
com.yahoo.searchlib.aggregation.hll.Sketch<NormalSketch>
com.yahoo.searchlib.aggregation.hll.NormalSketch
All Implemented Interfaces:
Cloneable

public class NormalSketch extends Sketch<NormalSketch>
Sketch used by the HyperLogLog (HLL) algorithm.
Author:
bjorncs
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final int
     
  • Constructor Summary

    Constructors
    Constructor
    Description
    Create a sketch with the default precision given by HyperLogLog.DEFAULT_PRECISION.
    NormalSketch(int precision)
    Create a sketch with a given HLL precision parameter.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    aggregate(int hash)
    Aggregates the hash value.
    void
    aggregate(Iterable<Integer> hashValues)
    Aggregates the hash values.
    byte[]
    Returns the underlying byte array backing the sketch.
    boolean
     
    int
     
    void
    Lossless merge of sketches.
    protected void
    onDeserialize(com.yahoo.vespa.objects.Deserializer buf)
     
    protected int
     
    protected void
    onSerialize(com.yahoo.vespa.objects.Serializer buf)
    Serializes the Sketch.
    int
    Sketch size.
     

    Methods inherited from class com.yahoo.vespa.objects.Identifiable

    clone, create, createFromId, deserialize, deserializeOptional, deserializeWithId, equals, getClassId, getRawUtf8Bytes, getUtf8, putUtf8, registerClass, serialize, serializeOptional, serializeWithId, visitMembers

    Methods inherited from class com.yahoo.vespa.objects.Selectable

    select, select, selectMembers

    Methods inherited from class java.lang.Object

    finalize, getClass, notify, notifyAll, wait, wait, wait
  • Field Details

    • classId

      public static final int classId
  • Constructor Details

    • NormalSketch

      public NormalSketch()
      Create a sketch with the default precision given by HyperLogLog.DEFAULT_PRECISION.
    • NormalSketch

      public NormalSketch(int precision)
      Create a sketch with a given HLL precision parameter.
      Parameters:
      precision - The precision parameter used by HLL. Determines the size of the sketch.
  • Method Details

    • merge

      public void merge(NormalSketch other)
      Lossless merge of sketches. Performs a pairwise maximum on the underlying data array.
      Specified by:
      merge in class Sketch<NormalSketch>
      Parameters:
      other - Other sketch
    • aggregate

      public void aggregate(Iterable<Integer> hashValues)
      Aggregates the hash values.
      Specified by:
      aggregate in class Sketch<NormalSketch>
      Parameters:
      hashValues - Provides an iterator for the hash values
    • aggregate

      public void aggregate(int hash)
      Aggregates the hash value.
      Specified by:
      aggregate in class Sketch<NormalSketch>
      Parameters:
      hash - Hash value.
    • onSerialize

      protected void onSerialize(com.yahoo.vespa.objects.Serializer buf)
      Serializes the Sketch. Serialization format ================== Original size: 4 bytes Compressed size: 4 bytes Compressed data: N * 1 bytes Invariant: compressed size <= original size Special case: compressed size == original size => data is uncompressed
      Overrides:
      onSerialize in class com.yahoo.vespa.objects.Identifiable
      Parameters:
      buf - Serializer
    • onDeserialize

      protected void onDeserialize(com.yahoo.vespa.objects.Deserializer buf)
      Overrides:
      onDeserialize in class com.yahoo.vespa.objects.Identifiable
    • data

      public byte[] data()
      Returns the underlying byte array backing the sketch.
      Returns:
      The underlying sketch data
    • size

      public int size()
      Sketch size.
      Returns:
      Number of buckets in the sketch.
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class com.yahoo.vespa.objects.Identifiable
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class com.yahoo.vespa.objects.Identifiable
    • onGetClassId

      protected int onGetClassId()
      Overrides:
      onGetClassId in class com.yahoo.vespa.objects.Identifiable
    • toString

      public String toString()
      Overrides:
      toString in class com.yahoo.vespa.objects.Identifiable