blob: 286e75386839e7621948ad6ab2ea40692a8eb7ea [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>WatermarkTimeEvictionPolicy (Storm 2.4.0 API)</title>
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="WatermarkTimeEvictionPolicy (Storm 2.4.0 API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/WatermarkTimeEvictionPolicy.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/apache/storm/windowing/WaterMarkEventGenerator.html" title="class in org.apache.storm.windowing"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/storm/windowing/WatermarkTimeTriggerPolicy.html" title="class in org.apache.storm.windowing"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/storm/windowing/WatermarkTimeEvictionPolicy.html" target="_top">Frames</a></li>
<li><a href="WatermarkTimeEvictionPolicy.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#fields.inherited.from.class.org.apache.storm.windowing.TimeEvictionPolicy">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.storm.windowing</div>
<h2 title="Class WatermarkTimeEvictionPolicy" class="title">Class WatermarkTimeEvictionPolicy&lt;T&gt;</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li><a href="../../../../org/apache/storm/windowing/TimeEvictionPolicy.html" title="class in org.apache.storm.windowing">org.apache.storm.windowing.TimeEvictionPolicy</a>&lt;T&gt;</li>
<li>
<ul class="inheritance">
<li>org.apache.storm.windowing.WatermarkTimeEvictionPolicy&lt;T&gt;</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../../../org/apache/storm/windowing/EvictionPolicy.html" title="interface in org.apache.storm.windowing">EvictionPolicy</a>&lt;T,<a href="../../../../org/apache/storm/windowing/EvictionContext.html" title="interface in org.apache.storm.windowing">EvictionContext</a>&gt;</dd>
</dl>
<hr>
<br>
<pre>public class <span class="typeNameLabel">WatermarkTimeEvictionPolicy&lt;T&gt;</span>
extends <a href="../../../../org/apache/storm/windowing/TimeEvictionPolicy.html" title="class in org.apache.storm.windowing">TimeEvictionPolicy</a>&lt;T&gt;</pre>
<div class="block"><p>An eviction policy that evicts events based on time duration taking watermark time and event lag into account.</p></div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<ul class="blockList">
<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.storm.windowing.EvictionPolicy">
<!-- -->
</a>
<h3>Nested classes/interfaces inherited from interface&nbsp;org.apache.storm.windowing.<a href="../../../../org/apache/storm/windowing/EvictionPolicy.html" title="interface in org.apache.storm.windowing">EvictionPolicy</a></h3>
<code><a href="../../../../org/apache/storm/windowing/EvictionPolicy.Action.html" title="enum in org.apache.storm.windowing">EvictionPolicy.Action</a></code></li>
</ul>
</li>
</ul>
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.org.apache.storm.windowing.TimeEvictionPolicy">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;org.apache.storm.windowing.<a href="../../../../org/apache/storm/windowing/TimeEvictionPolicy.html" title="class in org.apache.storm.windowing">TimeEvictionPolicy</a></h3>
<code><a href="../../../../org/apache/storm/windowing/TimeEvictionPolicy.html#evictionContext">evictionContext</a></code></li>
</ul>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/storm/windowing/WatermarkTimeEvictionPolicy.html#WatermarkTimeEvictionPolicy-int-">WatermarkTimeEvictionPolicy</a></span>(int&nbsp;windowLength)</code>
<div class="block">Constructs a WatermarkTimeEvictionPolicy that evicts events older than the given window length in millis.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/storm/windowing/WatermarkTimeEvictionPolicy.html#WatermarkTimeEvictionPolicy-int-int-">WatermarkTimeEvictionPolicy</a></span>(int&nbsp;windowLength,
int&nbsp;lag)</code>
<div class="block">Constructs a WatermarkTimeEvictionPolicy that evicts events older than the given window length in millis.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/storm/windowing/EvictionPolicy.Action.html" title="enum in org.apache.storm.windowing">EvictionPolicy.Action</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/storm/windowing/WatermarkTimeEvictionPolicy.html#evict-org.apache.storm.windowing.Event-">evict</a></span>(<a href="../../../../org/apache/storm/windowing/Event.html" title="interface in org.apache.storm.windowing">Event</a>&lt;<a href="../../../../org/apache/storm/windowing/WatermarkTimeEvictionPolicy.html" title="type parameter in WatermarkTimeEvictionPolicy">T</a>&gt;&nbsp;event)</code>
<div class="block">Decides if an event should be expired from the window, processed in the current window or kept for later processing.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/storm/windowing/WatermarkTimeEvictionPolicy.html#toString--">toString</a></span>()</code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.storm.windowing.TimeEvictionPolicy">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.storm.windowing.<a href="../../../../org/apache/storm/windowing/TimeEvictionPolicy.html" title="class in org.apache.storm.windowing">TimeEvictionPolicy</a></h3>
<code><a href="../../../../org/apache/storm/windowing/TimeEvictionPolicy.html#getContext--">getContext</a>, <a href="../../../../org/apache/storm/windowing/TimeEvictionPolicy.html#getState--">getState</a>, <a href="../../../../org/apache/storm/windowing/TimeEvictionPolicy.html#reset--">reset</a>, <a href="../../../../org/apache/storm/windowing/TimeEvictionPolicy.html#restoreState-org.apache.storm.windowing.EvictionContext-">restoreState</a>, <a href="../../../../org/apache/storm/windowing/TimeEvictionPolicy.html#setContext-org.apache.storm.windowing.EvictionContext-">setContext</a>, <a href="../../../../org/apache/storm/windowing/TimeEvictionPolicy.html#track-org.apache.storm.windowing.Event-">track</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="WatermarkTimeEvictionPolicy-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>WatermarkTimeEvictionPolicy</h4>
<pre>public&nbsp;WatermarkTimeEvictionPolicy(int&nbsp;windowLength)</pre>
<div class="block"><p>Constructs a WatermarkTimeEvictionPolicy that evicts events older than the given window length in millis.</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>windowLength</code> - the window length in milliseconds</dd>
</dl>
</li>
</ul>
<a name="WatermarkTimeEvictionPolicy-int-int-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>WatermarkTimeEvictionPolicy</h4>
<pre>public&nbsp;WatermarkTimeEvictionPolicy(int&nbsp;windowLength,
int&nbsp;lag)</pre>
<div class="block"><p>Constructs a WatermarkTimeEvictionPolicy that evicts events older than the given window length in millis. The lag parameter can be used in the case of event based ts to break the queue scan early.</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>windowLength</code> - the window length in milliseconds</dd>
<dd><code>lag</code> - the max event lag in milliseconds</dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="evict-org.apache.storm.windowing.Event-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>evict</h4>
<pre>public&nbsp;<a href="../../../../org/apache/storm/windowing/EvictionPolicy.Action.html" title="enum in org.apache.storm.windowing">EvictionPolicy.Action</a>&nbsp;evict(<a href="../../../../org/apache/storm/windowing/Event.html" title="interface in org.apache.storm.windowing">Event</a>&lt;<a href="../../../../org/apache/storm/windowing/WatermarkTimeEvictionPolicy.html" title="type parameter in WatermarkTimeEvictionPolicy">T</a>&gt;&nbsp;event)</pre>
<div class="block"><p><p><p>Decides if an event should be expired from the window, processed in the current window or kept for later processing.</p></p> <p/> Keeps events with future ts in the queue for processing in the next window. If the ts difference is more than the lag, stops scanning the queue for the current window.</p></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../org/apache/storm/windowing/EvictionPolicy.html#evict-org.apache.storm.windowing.Event-">evict</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/storm/windowing/EvictionPolicy.html" title="interface in org.apache.storm.windowing">EvictionPolicy</a>&lt;<a href="../../../../org/apache/storm/windowing/WatermarkTimeEvictionPolicy.html" title="type parameter in WatermarkTimeEvictionPolicy">T</a>,<a href="../../../../org/apache/storm/windowing/EvictionContext.html" title="interface in org.apache.storm.windowing">EvictionContext</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../org/apache/storm/windowing/TimeEvictionPolicy.html#evict-org.apache.storm.windowing.Event-">evict</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/apache/storm/windowing/TimeEvictionPolicy.html" title="class in org.apache.storm.windowing">TimeEvictionPolicy</a>&lt;<a href="../../../../org/apache/storm/windowing/WatermarkTimeEvictionPolicy.html" title="type parameter in WatermarkTimeEvictionPolicy">T</a>&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>event</code> - the input event</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the <a href="../../../../org/apache/storm/windowing/EvictionPolicy.Action.html" title="enum in org.apache.storm.windowing"><code>EvictionPolicy.Action</code></a> to be taken based on the input event</dd>
</dl>
</li>
</ul>
<a name="toString--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>toString</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;toString()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../org/apache/storm/windowing/TimeEvictionPolicy.html#toString--">toString</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/apache/storm/windowing/TimeEvictionPolicy.html" title="class in org.apache.storm.windowing">TimeEvictionPolicy</a>&lt;<a href="../../../../org/apache/storm/windowing/WatermarkTimeEvictionPolicy.html" title="type parameter in WatermarkTimeEvictionPolicy">T</a>&gt;</code></dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/WatermarkTimeEvictionPolicy.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><script type="text/javascript" src="../../../../highlight.pack.js"></script>
<script type="text/javascript"><!--
hljs.initHighlightingOnLoad();
//--></script></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/apache/storm/windowing/WaterMarkEventGenerator.html" title="class in org.apache.storm.windowing"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/storm/windowing/WatermarkTimeTriggerPolicy.html" title="class in org.apache.storm.windowing"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/storm/windowing/WatermarkTimeEvictionPolicy.html" target="_top">Frames</a></li>
<li><a href="WatermarkTimeEvictionPolicy.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#fields.inherited.from.class.org.apache.storm.windowing.TimeEvictionPolicy">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2022 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>