Package org.apache.storm.windowing
Class WindowManager<T>
java.lang.Object
org.apache.storm.windowing.WindowManager<T>
- Type Parameters:
T
- the type of event in the window.
- All Implemented Interfaces:
TriggerHandler
- Direct Known Subclasses:
StatefulWindowManager
Tracks a window of events and fires
WindowLifecycleListener
callbacks on expiry of events or activation of the window due to
TriggerPolicy
.-
Field Summary
Modifier and TypeFieldDescriptionprotected EvictionPolicy<T,
?> static final int
Expire old events every EXPIRE_EVENTS_THRESHOLD to keep the window size in check.protected final Collection<Event<T>>
protected TriggerPolicy<T,
?> protected final WindowLifecycleListener<T>
-
Constructor Summary
ConstructorDescriptionWindowManager
(WindowLifecycleListener<T> lifecycleListener) WindowManager
(WindowLifecycleListener<T> lifecycleListener, Collection<Event<T>> queue) Constructs aWindowManager
. -
Method Summary
Modifier and TypeMethodDescriptionvoid
Tracks a window event.void
Add an event into the window, withSystem.currentTimeMillis()
as the tracking ts.void
Add an event into the window, with the given ts as the tracking ts.protected void
expires events that fall out of the window every EXPIRE_EVENTS_THRESHOLD so that the window does not grow too big.long
getEarliestEventTs
(long startTs, long endTs) Scans the event queue and returns the next earliest event ts between the startTs and endTs.int
getEventCount
(long referenceTime) Scans the event queue and returns number of events having timestamp less than or equal to the reference time.getSlidingCountTimestamps
(long startTs, long endTs, int slidingCount) Scans the event queue and returns the list of event ts falling between startTs (exclusive) and endTs (inclusive) at each sliding interval counts.getState()
boolean
The callback invoked by the trigger policy.void
restoreState
(Map<String, Optional<?>> state) void
setEvictionPolicy
(EvictionPolicy<T, ?> evictionPolicy) void
setTriggerPolicy
(TriggerPolicy<T, ?> triggerPolicy) void
shutdown()
toString()
-
Field Details
-
EXPIRE_EVENTS_THRESHOLD
public static final int EXPIRE_EVENTS_THRESHOLDExpire old events every EXPIRE_EVENTS_THRESHOLD to keep the window size in check.Note that if the eviction policy is based on watermarks, events will not be evicted until a new watermark would cause them to be considered expired anyway, regardless of this limit
- See Also:
-
queue
-
windowLifecycleListener
-
evictionPolicy
-
triggerPolicy
-
-
Constructor Details
-
WindowManager
-
WindowManager
Constructs aWindowManager
.- Parameters:
lifecycleListener
- theWindowLifecycleListener
queue
- a collection where the events in the window can be enqueued.
Note: This collection has to be thread safe.
-
-
Method Details
-
setEvictionPolicy
-
setTriggerPolicy
-
add
Add an event into the window, withSystem.currentTimeMillis()
as the tracking ts.- Parameters:
event
- the event to add
-
add
Add an event into the window, with the given ts as the tracking ts.- Parameters:
event
- the event to trackts
- the timestamp
-
add
Tracks a window event.- Parameters:
windowEvent
- the window event to track
-
onTrigger
public boolean onTrigger()The callback invoked by the trigger policy.- Specified by:
onTrigger
in interfaceTriggerHandler
- Returns:
- true if the window was evaluated with at least one event in the window, false otherwise
-
shutdown
public void shutdown() -
compactWindow
protected void compactWindow()expires events that fall out of the window every EXPIRE_EVENTS_THRESHOLD so that the window does not grow too big. -
getEarliestEventTs
public long getEarliestEventTs(long startTs, long endTs) Scans the event queue and returns the next earliest event ts between the startTs and endTs.- Parameters:
startTs
- the start ts (exclusive)endTs
- the end ts (inclusive)- Returns:
- the earliest event ts between startTs and endTs
-
getEventCount
public int getEventCount(long referenceTime) Scans the event queue and returns number of events having timestamp less than or equal to the reference time.- Parameters:
referenceTime
- the reference timestamp in millis- Returns:
- the count of events with timestamp less than or equal to referenceTime
-
getSlidingCountTimestamps
Scans the event queue and returns the list of event ts falling between startTs (exclusive) and endTs (inclusive) at each sliding interval counts.- Parameters:
startTs
- the start timestamp (exclusive)endTs
- the end timestamp (inclusive)slidingCount
- the sliding interval count- Returns:
- the list of event ts
-
toString
-
restoreState
-
getState
-