Class EncodingStats

  • All Implemented Interfaces:
    IMeasurableMemory

    public class EncodingStats
    extends java.lang.Object
    implements IMeasurableMemory
    Stats used for the encoding of the rows and tombstones of a given source.

    Those stats are used to optimize the on-wire and on-disk storage of rows. More precisely, the minTimestamp, minLocalDeletionTime and minTTL stats are used to delta-encode those information for the sake of vint encoding.

    Note that due to their use, those stats can suffer to be somewhat inaccurate (the more incurrate they are, the less effective the storage will be, but provided the stats are not completly wacky, this shouldn't have too huge an impact on performance) and in fact they will not always be accurate for reasons explained in SerializationHeader.make(org.apache.cassandra.schema.TableMetadata, java.util.Collection<org.apache.cassandra.io.sstable.format.SSTableReader>).

    • Field Detail

      • TIMESTAMP_EPOCH

        public static final long TIMESTAMP_EPOCH
      • HEAP_SIZE

        public static final long HEAP_SIZE
      • minTimestamp

        public final long minTimestamp
      • minLocalDeletionTime

        public final long minLocalDeletionTime
      • minTTL

        public final int minTTL
    • Constructor Detail

      • EncodingStats

        public EncodingStats​(long minTimestamp,
                             long minLocalDeletionTime,
                             int minTTL)
    • Method Detail

      • merge

        public static <V,​F extends java.util.function.Function<V,​EncodingStats>> EncodingStats merge​(java.util.List<V> values,
                                                                                                                 F function)
        Merge one or more EncodingStats, that are lazily materialized from some list of arbitrary type by the provided function
      • equals

        public boolean equals​(java.lang.Object o)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • unsharedHeapSize

        public long unsharedHeapSize()
        Specified by:
        unsharedHeapSize in interface IMeasurableMemory
        Returns:
        the amount of on-heap memory retained by the object that might be reclaimed if the object were reclaimed, i.e. it should try to exclude globally cached data where possible, or counting portions of arrays that are referenced by the object but used by other objects only (e.g. slabbed byte-buffers), etc.
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object