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 AtomicLongcurrentCountprotected intthreshold
-
Constructor Summary
Constructors Constructor Description WatermarkCountEvictionPolicy(int count)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description EvictionPolicy.Actionevict(Event<T> event)Decides if an event should be expired from the window, processed in the current window or kept for later processing.EvictionContextgetContext()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.voidreset()Resets the eviction policy.voidrestoreState(Pair<Long,Long> state)Restore the eviction policy from the state that was earlier checkpointed by the framework.voidsetContext(EvictionContext context)Sets a context in the eviction policy that can be used while evicting the events.StringtoString()voidtrack(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:EvictionPolicyDecides if an event should be expired from the window, processed in the current window or kept for later processing.- Specified by:
evictin interfaceEvictionPolicy<T,Pair<Long,Long>>- Parameters:
event- the input event- Returns:
- the
EvictionPolicy.Actionto be taken based on the input event
-
track
public void track(Event<T> event)
Description copied from interface:EvictionPolicyTracks the event to later decide whetherEvictionPolicy.evict(Event)should evict it or not.
-
getContext
public EvictionContext getContext()
Description copied from interface:EvictionPolicyReturns the current context that is part of this eviction policy.- Specified by:
getContextin interfaceEvictionPolicy<T,Pair<Long,Long>>- Returns:
- the eviction context
-
setContext
public void setContext(EvictionContext context)
Description copied from interface:EvictionPolicySets 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:
setContextin interfaceEvictionPolicy<T,Pair<Long,Long>>- Parameters:
context- the eviction context
-
reset
public void reset()
Description copied from interface:EvictionPolicyResets the eviction policy.
-
getState
public Pair<Long,Long> getState()
Description copied from interface:EvictionPolicyReturn 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:EvictionPolicyRestore the eviction policy from the state that was earlier checkpointed by the framework.- Specified by:
restoreStatein interfaceEvictionPolicy<T,Pair<Long,Long>>- Parameters:
state- the state
-
-