Class LilyPadUtils.KeyRecord<T extends Comparable<T>>

java.lang.Object
com.linkedin.venice.spark.consistency.LilyPadUtils.KeyRecord<T>
Type Parameters:
T - the position type — must be Comparable so the lily-pad algorithm can determine whether one DC's high-watermark covers another's position vector.
Enclosing class:
LilyPadUtils

public static class LilyPadUtils.KeyRecord<T extends Comparable<T>> extends Object
Per-key snapshot of a single VT record, capturing the value, the upstream position vector that the leader used for its DCR decision, the global high-watermark at that moment, and the logical timestamp used by DCR to pick the winner.
  • Field Details

    • valueHash

      public final Integer valueHash
      Hash of the raw value bytes for equality comparison, or null for DELETE (tombstone).
    • upstreamRTPosition

      public final List<T extends Comparable<T>> upstreamRTPosition
      Upstream RT position per region, indexed by region ID.
    • highWatermark

      public final List<T extends Comparable<T>> highWatermark
      Global max upstream RT position per region at the moment this record was written, indexed by region ID.
    • logicalTimestamp

      public final long logicalTimestamp
      Logical timestamp used by Venice DCR; higher value wins.
    • vtPosition

      public final T extends Comparable<T> vtPosition
      This record's position in the VT partition. Useful for forensic lookup when reporting inconsistencies.
  • Constructor Details

    • KeyRecord

      public KeyRecord(Integer valueHash, List<T> upstreamRTPosition, List<T> highWatermark, long logicalTimestamp, T vtPosition)