Class WatermarkTimeEvictionPolicy<T>

  • All Implemented Interfaces:
    EvictionPolicy<T,​EvictionContext>

    public class WatermarkTimeEvictionPolicy<T>
    extends TimeEvictionPolicy<T>
    An eviction policy that evicts events based on time duration taking watermark time and event lag into account.
    • Constructor Detail

      • WatermarkTimeEvictionPolicy

        public WatermarkTimeEvictionPolicy​(long windowLength)
        Constructs a WatermarkTimeEvictionPolicy that evicts events older than the given window length in millis.
        Parameters:
        windowLength - the window length in milliseconds
      • WatermarkTimeEvictionPolicy

        public WatermarkTimeEvictionPolicy​(long windowLength,
                                           long lag)
        Constructs a WatermarkTimeEvictionPolicy that evicts events older than the given window length in millis. The lag parameter can be used in the case of event based ts to break the queue scan early.
        Parameters:
        windowLength - the window length in milliseconds
        lag - the max event lag in milliseconds
    • Method Detail

      • evict

        public EvictionPolicy.Action evict​(Event<T> event)
        Decides if an event should be expired from the window, processed in the current window or kept for later processing.

        Keeps events with future ts in the queue for processing in the next window. If the ts difference is more than the lag, stops scanning the queue for the current window.

        Specified by:
        evict in interface EvictionPolicy<T,​EvictionContext>
        Overrides:
        evict in class TimeEvictionPolicy<T>
        Parameters:
        event - the input event
        Returns:
        the EvictionPolicy.Action to be taken based on the input event