org.apache.storm.windowing

## Class WatermarkCountEvictionPolicy<T>

- java.lang.Object
- - org.apache.storm.windowing.WatermarkCountEvictionPolicy<T>

- All Implemented Interfaces:
    EvictionPolicy<T,Pair<Long,Long>>

      public class WatermarkCountEvictionPolicy<T>
      extends Object
      implements EvictionPolicy<T,Pair<Long,Long>>

  An eviction policy that tracks count based on watermark ts and evicts events up to the watermark based on a threshold count.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface org.apache.storm.windowing.EvictionPolicy

      `EvictionPolicy.Action`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected AtomicLong` | `currentCount`
    `protected int` | `threshold`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `WatermarkCountEvictionPolicy(int count)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `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.
    `EvictionContext` | `getContext()` Returns the current context that is part of this eviction policy.
    `Pair<Long,Long>` | `getState()` Return runtime state to be checkpointed by the framework for restoring the eviction policy in case of failures.
    `void` | `reset()` Resets the eviction policy.
    `void` | `restoreState(Pair<Long,Long> state)` Restore the eviction policy from the state that was earlier checkpointed by the framework.
    `void` | `setContext(EvictionContext context)` Sets a context in the eviction policy that can be used while evicting the events.
    `String` | `toString()`
    `void` | `track(Event<T> event)` Tracks the event to later decide whether `EvictionPolicy.evict(Event)` should evict it or not.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### threshold

          protected final int threshold

    - #### currentCount

          protected final AtomicLong currentCount

  - ### Constructor Detail

    - #### WatermarkCountEvictionPolicy

          public WatermarkCountEvictionPolicy(int count)

  - ### Method Detail

    - #### evict

          public EvictionPolicy.Action evict(Event<T> event)

      Description copied from interface: `EvictionPolicy`

      Decides if an event should be expired from the window, processed in the current window or kept for later processing.

      Specified by:
        `evict` in interface `EvictionPolicy<T,Pair<Long,Long>>`
      Parameters:
        `event` - the input event
      Returns:
        the `EvictionPolicy.Action` to be taken based on the input event

    - #### track

          public void track(Event<T> event)

      Description copied from interface: `EvictionPolicy`

      Tracks the event to later decide whether `EvictionPolicy.evict(Event)` should evict it or not.

      Specified by:
        `track` in interface `EvictionPolicy<T,Pair<Long,Long>>`
      Parameters:
        `event` - the input event to be tracked

    - #### getContext

          public EvictionContext getContext()

      Description copied from interface: `EvictionPolicy`

      Returns the current context that is part of this eviction policy.

      Specified by:
        `getContext` in interface `EvictionPolicy<T,Pair<Long,Long>>`
      Returns:
        the eviction context

    - #### setContext

          public void setContext(EvictionContext context)

      Description copied from interface: `EvictionPolicy`

      Sets a context in the eviction policy that can be used while evicting the events. E.g. For TimeEvictionPolicy, this could be used to set the reference timestamp.

      Specified by:
        `setContext` in interface `EvictionPolicy<T,Pair<Long,Long>>`
      Parameters:
        `context` - the eviction context

    - #### reset

          public void reset()

      Description copied from interface: `EvictionPolicy`

      Resets the eviction policy.

      Specified by:
        `reset` in interface `EvictionPolicy<T,Pair<Long,Long>>`

    - #### getState

          public Pair<Long,Long> getState()

      Description copied from interface: `EvictionPolicy`

      Return runtime state to be checkpointed by the framework for restoring the eviction policy in case of failures.

      Specified by:
        `getState` in interface `EvictionPolicy<T,Pair<Long,Long>>`
      Returns:
        the state

    - #### restoreState

          public void restoreState(Pair<Long,Long> state)

      Description copied from interface: `EvictionPolicy`

      Restore the eviction policy from the state that was earlier checkpointed by the framework.

      Specified by:
        `restoreState` in interface `EvictionPolicy<T,Pair<Long,Long>>`
      Parameters:
        `state` - the state

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `Object`

Copyright © 2019 The Apache Software Foundation. All rights reserved.