Package org.apache.storm.windowing
Class WatermarkCountEvictionPolicy<T>
- java.lang.Object
-
- org.apache.storm.windowing.WatermarkCountEvictionPolicy<T>
-
- Type Parameters:
T
- the type of event tracked by this policy.
- 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 Description protected AtomicLong
currentCount
protected int
threshold
-
Constructor Summary
Constructors Constructor Description WatermarkCountEvictionPolicy(int count)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method 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 whetherEvictionPolicy.evict(Event)
should evict it or not.
-
-
-
Field Detail
-
threshold
protected final int threshold
-
currentCount
protected final AtomicLong currentCount
-
-
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 interfaceEvictionPolicy<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 whetherEvictionPolicy.evict(Event)
should evict it or not.
-
getContext
public EvictionContext getContext()
Description copied from interface:EvictionPolicy
Returns the current context that is part of this eviction policy.- Specified by:
getContext
in interfaceEvictionPolicy<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 interfaceEvictionPolicy<T,Pair<Long,Long>>
- Parameters:
context
- the eviction context
-
reset
public void reset()
Description copied from interface:EvictionPolicy
Resets the eviction policy.
-
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.
-
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 interfaceEvictionPolicy<T,Pair<Long,Long>>
- Parameters:
state
- the state
-
-