Package org.apache.datasketches.tuple
Class UpdatableSketch<U,S extends UpdatableSummary<U>>
java.lang.Object
org.apache.datasketches.tuple.Sketch<S>
org.apache.datasketches.tuple.UpdatableSketch<U,S>
- Type Parameters:
U
- Type of the value, which is passed to update method of a SummaryS
- Type of the UpdatableSummary<U>
- Direct Known Subclasses:
ArrayOfStringsSketch
,DoubleSketch
,IntegerSketch
An extension of QuickSelectSketch<S>, which can be updated with many types of keys.
Summary objects are created using a user-defined SummaryFactory class,
which should allow very flexible parameterization if needed.
Keys are presented to a sketch along with values of a user-defined
update type U. When an entry is inserted into a sketch or a duplicate key is
presented to a sketch then summary.update(U value) method will be called. So
any kind of user-defined accumulation is possible. Summaries also must know
how to copy themselves. Also union and intersection of summaries can be
implemented in a sub-class of SummarySetOperations, which will be used in
case Union or Intersection of two instances of Tuple Sketch is needed
-
Constructor Summary
ConstructorDescriptionUpdatableSketch
(int nomEntries, int lgResizeFactor, float samplingProbability, SummaryFactory<S> summaryFactory) This is to create a new instance of an UpdatableQuickSelectSketch.UpdatableSketch
(org.apache.datasketches.memory.Memory srcMem, SummaryDeserializer<S> deserializer, SummaryFactory<S> summaryFactory) Deprecated.As of 3.0.0, heapifying an UpdatableSketch is deprecated.UpdatableSketch
(UpdatableSketch<U, S> sketch) Copy Constructor -
Method Summary
Modifier and TypeMethodDescriptioncompact()
Converts the current state of the sketch into a compact sketchcopy()
int
getCountLessThanThetaLong
(long thetaLong) Gets the number of hash values less than the given theta expressed as a long.int
Get current capacityint
getLgK()
Get log_base2 of Nominal Entriesint
Get configured nominal number of entriesGet configured resize factorint
float
Get configured sampling probabilityiterator()
Returns a SketchIteratorvoid
reset()
Resets this sketch an empty state.byte[]
Deprecated.As of 3.0.0, serializing an UpdatableSketch is deprecated.void
trim()
Rebuilds reducing the actual number of entries to the nominal number of entries if neededvoid
Updates this sketch with a byte[] key and U value.void
Updates this sketch with a double key and U value.void
Updates this sketch with a int[] key and U value.void
Updates this sketch with a long[] key and U value.void
Updates this sketch with a long key and U value.void
Updates this sketch with a String key and U value.void
update
(ByteBuffer buffer, U value) Updates this sketch with a ByteBuffer and U value The value is passed to the update() method of the Summary object associated with the keyMethods inherited from class org.apache.datasketches.tuple.Sketch
getEstimate, getEstimate, getLowerBound, getLowerBound, getSummaryFactory, getTheta, getThetaLong, getUpperBound, getUpperBound, isEmpty, isEstimationMode, toString
-
Constructor Details
-
UpdatableSketch
public UpdatableSketch(int nomEntries, int lgResizeFactor, float samplingProbability, SummaryFactory<S> summaryFactory) This is to create a new instance of an UpdatableQuickSelectSketch.- Parameters:
nomEntries
- Nominal number of entries. Forced to the nearest power of 2 greater than or equal to the given value.lgResizeFactor
- log2(resizeFactor) - value from 0 to 3:0 - no resizing (max size allocated), 1 - double internal hash table each time it reaches a threshold 2 - grow four times 3 - grow eight times (default)
samplingProbability
- See Sampling ProbabilitysummaryFactory
- An instance of a SummaryFactory.
-
UpdatableSketch
@Deprecated public UpdatableSketch(org.apache.datasketches.memory.Memory srcMem, SummaryDeserializer<S> deserializer, SummaryFactory<S> summaryFactory) Deprecated.As of 3.0.0, heapifying an UpdatableSketch is deprecated. This capability will be removed in a future release. Heapifying a CompactSketch is not deprecated.This is to create an instance of a sketch given a serialized form- Parameters:
srcMem
- Memory object with data of a serialized UpdatableSketchdeserializer
- instance of SummaryDeserializersummaryFactory
- instance of SummaryFactory
-
UpdatableSketch
Copy Constructor- Parameters:
sketch
- the sketch to copy
-
-
Method Details
-
copy
- Returns:
- a deep copy of this sketch
-
update
Updates this sketch with a long key and U value. The value is passed to update() method of the Summary object associated with the key- Parameters:
key
- The given long keyvalue
- The given U value
-
update
Updates this sketch with a double key and U value. The value is passed to update() method of the Summary object associated with the key- Parameters:
key
- The given double keyvalue
- The given U value
-
update
Updates this sketch with a String key and U value. The value is passed to update() method of the Summary object associated with the key- Parameters:
key
- The given String keyvalue
- The given U value
-
update
Updates this sketch with a byte[] key and U value. The value is passed to update() method of the Summary object associated with the key- Parameters:
key
- The given byte[] keyvalue
- The given U value
-
update
Updates this sketch with a ByteBuffer and U value The value is passed to the update() method of the Summary object associated with the key- Parameters:
buffer
- The given ByteBuffer keyvalue
- The given U value
-
update
Updates this sketch with a int[] key and U value. The value is passed to update() method of the Summary object associated with the key- Parameters:
key
- The given int[] keyvalue
- The given U value
-
update
Updates this sketch with a long[] key and U value. The value is passed to update() method of the Summary object associated with the key- Parameters:
key
- The given long[] keyvalue
- The given U value
-
getRetainedEntries
public int getRetainedEntries()- Specified by:
getRetainedEntries
in classSketch<S extends Summary>
- Returns:
- number of retained entries
-
getCountLessThanThetaLong
public int getCountLessThanThetaLong(long thetaLong) Description copied from class:Sketch
Gets the number of hash values less than the given theta expressed as a long.- Specified by:
getCountLessThanThetaLong
in classSketch<S extends Summary>
- Parameters:
thetaLong
- the given theta as a long between zero and Long.MAX_VALUE.- Returns:
- the number of hash values less than the given thetaLong.
-
getNominalEntries
public int getNominalEntries()Get configured nominal number of entries- Returns:
- nominal number of entries
-
getLgK
public int getLgK()Get log_base2 of Nominal Entries- Returns:
- log_base2 of Nominal Entries
-
getSamplingProbability
public float getSamplingProbability()Get configured sampling probability- Returns:
- sampling probability
-
getCurrentCapacity
public int getCurrentCapacity()Get current capacity- Returns:
- current capacity
-
getResizeFactor
Get configured resize factor- Returns:
- resize factor
-
trim
public void trim()Rebuilds reducing the actual number of entries to the nominal number of entries if needed -
reset
public void reset()Resets this sketch an empty state. -
compact
Converts the current state of the sketch into a compact sketch -
toByteArray
Deprecated.As of 3.0.0, serializing an UpdatableSketch is deprecated. This capability will be removed in a future release. Serializing a CompactSketch is not deprecated.This serializes an UpdatableSketch (QuickSelectSketch).- Specified by:
toByteArray
in classSketch<S extends Summary>
- Returns:
- serialized representation of an UpdatableSketch (QuickSelectSketch).
-
iterator
Description copied from class:Sketch
Returns a SketchIterator
-