Package org.apache.storm.windowing
Class TimeEvictionPolicy<T>
- java.lang.Object
-
- org.apache.storm.windowing.TimeEvictionPolicy<T>
-
- All Implemented Interfaces:
EvictionPolicy<T,EvictionContext>
- Direct Known Subclasses:
WatermarkTimeEvictionPolicy
public class TimeEvictionPolicy<T> extends Object implements EvictionPolicy<T,EvictionContext>
Eviction policy that evicts events based on time duration.
-
-
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 EvictionContextevictionContext
-
Constructor Summary
Constructors Constructor Description TimeEvictionPolicy(int windowLength)Constructs a TimeEvictionPolicy that evicts events older than the given window length in millis.
-
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.EvictionContextgetState()Return runtime state to be checkpointed by the framework for restoring the eviction policy in case of failures.voidreset()Resets the eviction policy.voidrestoreState(EvictionContext 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
-
evictionContext
protected volatile EvictionContext evictionContext
-
-
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.- Specified by:
evictin interfaceEvictionPolicy<T,EvictionContext>- 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.- Specified by:
trackin interfaceEvictionPolicy<T,EvictionContext>- Parameters:
event- the input event to be tracked
-
getContext
public EvictionContext getContext()
Description copied from interface:EvictionPolicyReturns the current context that is part of this eviction policy.- Specified by:
getContextin interfaceEvictionPolicy<T,EvictionContext>- 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,EvictionContext>- Parameters:
context- the eviction context
-
reset
public void reset()
Description copied from interface:EvictionPolicyResets the eviction policy.- Specified by:
resetin interfaceEvictionPolicy<T,EvictionContext>
-
getState
public EvictionContext getState()
Description copied from interface:EvictionPolicyReturn runtime state to be checkpointed by the framework for restoring the eviction policy in case of failures.- Specified by:
getStatein interfaceEvictionPolicy<T,EvictionContext>- Returns:
- the state
-
restoreState
public void restoreState(EvictionContext state)
Description copied from interface:EvictionPolicyRestore the eviction policy from the state that was earlier checkpointed by the framework.- Specified by:
restoreStatein interfaceEvictionPolicy<T,EvictionContext>- Parameters:
state- the state
-
-