blob: 59e11f449225edd0c80df297590d69b266cbd191 [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 (1.8.0_261) on Mon Dec 20 14:15:50 MSK 2021 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>ExponentialBackoffTimeoutStrategy (Ignite 2.11.1)</title>
<meta name="date" content="2021-12-20">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<link rel='shortcut icon' href='https://ignite.apache.org/favicon.ico'/>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="ExponentialBackoffTimeoutStrategy (Ignite 2.11.1)";
}
}
catch(err) {
}
//-->
var methods = {"i0":9,"i1":10,"i2":10,"i3":10,"i4":9};
var tabs = {65535:["t0","All Methods"],1:["t1","Static 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/ExponentialBackoffTimeoutStrategy.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>Prev&nbsp;Class</li>
<li><a href="../../../../org/apache/ignite/spi/IgniteNodeValidationResult.html" title="class in org.apache.ignite.spi"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/ignite/spi/ExponentialBackoffTimeoutStrategy.html" target="_top">Frames</a></li>
<li><a href="ExponentialBackoffTimeoutStrategy.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>Field&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.ignite.spi</div>
<h2 title="Class ExponentialBackoffTimeoutStrategy" class="title">Class ExponentialBackoffTimeoutStrategy</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>org.apache.ignite.spi.ExponentialBackoffTimeoutStrategy</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../../../org/apache/ignite/spi/TimeoutStrategy.html" title="interface in org.apache.ignite.spi">TimeoutStrategy</a></dd>
</dl>
<hr>
<br>
<pre>public class <span class="typeNameLabel">ExponentialBackoffTimeoutStrategy</span>
extends <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>
implements <a href="../../../../org/apache/ignite/spi/TimeoutStrategy.html" title="interface in org.apache.ignite.spi">TimeoutStrategy</a></pre>
<div class="block">Strategy which incorporates retriable network operation, handling of totalTimeout logic.
It increases startTimeout based on exponential backoff algorithm.
If failure detection is enabled it relies on totalTimeout
otherwise implements exponential backoff totalTimeout logic based on startTimeout, maxTimeout and retryCnt.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== 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/ignite/spi/ExponentialBackoffTimeoutStrategy.html#ExponentialBackoffTimeoutStrategy-long-long-long-">ExponentialBackoffTimeoutStrategy</a></span>(long&nbsp;totalTimeout,
long&nbsp;startTimeout,
long&nbsp;maxTimeout)</code>&nbsp;</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="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></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>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/ignite/spi/ExponentialBackoffTimeoutStrategy.html#backoffTimeout-long-long-">backoffTimeout</a></span>(long&nbsp;timeout,
long&nbsp;maxTimeout)</code>&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/ignite/spi/ExponentialBackoffTimeoutStrategy.html#checkTimeout-long-">checkTimeout</a></span>(long&nbsp;timeInFut)</code>
<div class="block">Check if total timeout will be reached in now() + timeInFut.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/ignite/spi/ExponentialBackoffTimeoutStrategy.html#nextTimeout-long-">nextTimeout</a></span>(long&nbsp;timeout)</code>
<div class="block">Get next timeout based on previously timeout calculated by strategy.</div>
</td>
</tr>
<tr id="i3" 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/ignite/spi/ExponentialBackoffTimeoutStrategy.html#toString--">toString</a></span>()</code></td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/ignite/spi/ExponentialBackoffTimeoutStrategy.html#totalBackoffTimeout-long-long-long-">totalBackoffTimeout</a></span>(long&nbsp;initTimeout,
long&nbsp;maxTimeout,
long&nbsp;reconCnt)</code>
<div class="block">Compute expected max backoff timeout based on initTimeout, maxTimeout and reconCnt and backoff coefficient.</div>
</td>
</tr>
</table>
<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>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.ignite.spi.TimeoutStrategy">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;org.apache.ignite.spi.<a href="../../../../org/apache/ignite/spi/TimeoutStrategy.html" title="interface in org.apache.ignite.spi">TimeoutStrategy</a></h3>
<code><a href="../../../../org/apache/ignite/spi/TimeoutStrategy.html#checkTimeout--">checkTimeout</a>, <a href="../../../../org/apache/ignite/spi/TimeoutStrategy.html#nextTimeout--">nextTimeout</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="ExponentialBackoffTimeoutStrategy-long-long-long-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>ExponentialBackoffTimeoutStrategy</h4>
<pre>public&nbsp;ExponentialBackoffTimeoutStrategy(long&nbsp;totalTimeout,
long&nbsp;startTimeout,
long&nbsp;maxTimeout)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>totalTimeout</code> - Total startTimeout.</dd>
<dd><code>startTimeout</code> - Initial connection timeout.</dd>
<dd><code>maxTimeout</code> - Max connection Timeout.</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="totalBackoffTimeout-long-long-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>totalBackoffTimeout</h4>
<pre>public static&nbsp;long&nbsp;totalBackoffTimeout(long&nbsp;initTimeout,
long&nbsp;maxTimeout,
long&nbsp;reconCnt)</pre>
<div class="block">Compute expected max backoff timeout based on initTimeout, maxTimeout and reconCnt and backoff coefficient.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>initTimeout</code> - Initial timeout.</dd>
<dd><code>maxTimeout</code> - Max Timeout per retry.</dd>
<dd><code>reconCnt</code> - Reconnection count.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Calculated total backoff timeout.</dd>
</dl>
</li>
</ul>
<a name="backoffTimeout-long-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>backoffTimeout</h4>
<pre>public static&nbsp;long&nbsp;backoffTimeout(long&nbsp;timeout,
long&nbsp;maxTimeout)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>timeout</code> - Timeout.</dd>
<dd><code>maxTimeout</code> - Maximum startTimeout for backoff function.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Next exponential backoff timeout.</dd>
</dl>
</li>
</ul>
<a name="nextTimeout-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>nextTimeout</h4>
<pre>public&nbsp;long&nbsp;nextTimeout(long&nbsp;timeout)
throws <a href="../../../../org/apache/ignite/spi/IgniteSpiOperationTimeoutException.html" title="class in org.apache.ignite.spi">IgniteSpiOperationTimeoutException</a></pre>
<div class="block">Get next timeout based on previously timeout calculated by strategy.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../org/apache/ignite/spi/TimeoutStrategy.html#nextTimeout-long-">nextTimeout</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/ignite/spi/TimeoutStrategy.html" title="interface in org.apache.ignite.spi">TimeoutStrategy</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Gets next timeout.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../org/apache/ignite/spi/IgniteSpiOperationTimeoutException.html" title="class in org.apache.ignite.spi">IgniteSpiOperationTimeoutException</a></code> - in case of total timeout already breached.</dd>
</dl>
</li>
</ul>
<a name="checkTimeout-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkTimeout</h4>
<pre>public&nbsp;boolean&nbsp;checkTimeout(long&nbsp;timeInFut)</pre>
<div class="block">Check if total timeout will be reached in now() + timeInFut.
If timeInFut is 0, will check that timeout already reached.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../org/apache/ignite/spi/TimeoutStrategy.html#checkTimeout-long-">checkTimeout</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/ignite/spi/TimeoutStrategy.html" title="interface in org.apache.ignite.spi">TimeoutStrategy</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>timeInFut</code> - Some millis in future.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>True</code> if total timeout will be reached.</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="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><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></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/ExponentialBackoffTimeoutStrategy.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>Prev&nbsp;Class</li>
<li><a href="../../../../org/apache/ignite/spi/IgniteNodeValidationResult.html" title="class in org.apache.ignite.spi"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/ignite/spi/ExponentialBackoffTimeoutStrategy.html" target="_top">Frames</a></li>
<li><a href="ExponentialBackoffTimeoutStrategy.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>Field&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><table width="100%" border="0" cellspacing=0 cellpadding=0 style="padding: 5px"> <tr> <td> <table style="padding-left: 0; margin: 0"> <tbody style="padding: 0; margin: 0"> <tr style="padding: 0; margin: 0"> <td> <a target=_blank href="https://ignite.apache.org"><nobr>2021 Copyright &#169; Apache Software Foundation</nobr></a> </td> </tr> </tbody> </table> </td> <td width="100%" align="right" valign="center"> <a href="https://twitter.com/ApacheIgnite" class="twitter-follow-button" data-show-count="false" data-size="large">Follow @ApacheIgnite</a> </td> </tr> <tr> <td colspan="2" valign="top" align="left"> <table style="padding-left: 0; margin: 0"> <tbody style="padding: 0; margin: 0"> <tr style="padding: 0; margin: 0"> <td> <b>Ignite Database and Caching Platform</b> </td> <td>:&nbsp;&nbsp; ver. <strong>2.11.1</strong> </td> </tr> <tr style="padding: 0; margin: 0"> <td> <b>Release Date</b> </td> <td>:&nbsp;&nbsp; December 20 2021 </td> </tr> </tbody> </table> </td> </tr> </table></small></p>
</body>
</html>