blob: b0541ad830527f75480fc186f576906f81a67387 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (11.0.18) on Wed Mar 01 02:01:42 GMT 2023 -->
<title>IStatefulStorage (Heron Java API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2023-03-01">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../../jquery/jquery-3.6.0.min.js"></script>
<script type="text/javascript" src="../../../../../jquery/jquery-ui.min.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="IStatefulStorage (Heron Java API)";
}
}
catch(err) {
}
//-->
var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</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" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</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>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&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>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.heron.spi.statefulstorage</a></div>
<h2 title="Interface IStatefulStorage" class="title">Interface IStatefulStorage</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><code><a href="../../statefulstorage/dlog/DlogStorage.html" title="class in org.apache.heron.statefulstorage.dlog">DlogStorage</a></code>, <code><a href="../../statefulstorage/hdfs/HDFSStorage.html" title="class in org.apache.heron.statefulstorage.hdfs">HDFSStorage</a></code>, <code><a href="../../statefulstorage/localfs/LocalFileSystemStorage.html" title="class in org.apache.heron.statefulstorage.localfs">LocalFileSystemStorage</a></code></dd>
</dl>
<hr>
<pre>public interface <span class="typeNameLabel">IStatefulStorage</span></pre>
<div class="block">The interface of all storage classes for checkpoints.
For each checkpoint, two types of data are stored:
- Component Meta Data (one per component).
- Instance Checkpoint Data (one per instance or patition)
Each Stateful Storage implementation needs to handle them accordingly.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<section>
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<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="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#close()">close</a></span>()</code></th>
<td class="colLast">
<div class="block">Closes the Stateful Storage</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#dispose(java.lang.String,boolean)">dispose</a></span>&#8203;(java.lang.String&nbsp;oldestCheckpointPreserved,
boolean&nbsp;deleteAll)</code></th>
<td class="colLast">
<div class="block">Dispose checkpoints.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#init(java.lang.String,java.util.Map)">init</a></span>&#8203;(java.lang.String&nbsp;topologyName,
java.util.Map&lt;java.lang.String,&#8203;java.lang.Object&gt;&nbsp;conf)</code></th>
<td class="colLast">
<div class="block">Initialize the Stateful Storage</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="Checkpoint.html" title="class in org.apache.heron.spi.statefulstorage">Checkpoint</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#restoreCheckpoint(org.apache.heron.spi.statefulstorage.CheckpointInfo)">restoreCheckpoint</a></span>&#8203;(<a href="CheckpointInfo.html" title="class in org.apache.heron.spi.statefulstorage">CheckpointInfo</a>&nbsp;info)</code></th>
<td class="colLast">
<div class="block">Retrieve instance checkpoint.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="CheckpointMetadata.html" title="class in org.apache.heron.spi.statefulstorage">CheckpointMetadata</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#restoreComponentMetadata(org.apache.heron.spi.statefulstorage.CheckpointInfo)">restoreComponentMetadata</a></span>&#8203;(<a href="CheckpointInfo.html" title="class in org.apache.heron.spi.statefulstorage">CheckpointInfo</a>&nbsp;info)</code></th>
<td class="colLast">
<div class="block">Retrieve component metadata.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#storeCheckpoint(org.apache.heron.spi.statefulstorage.CheckpointInfo,org.apache.heron.spi.statefulstorage.Checkpoint)">storeCheckpoint</a></span>&#8203;(<a href="CheckpointInfo.html" title="class in org.apache.heron.spi.statefulstorage">CheckpointInfo</a>&nbsp;info,
<a href="Checkpoint.html" title="class in org.apache.heron.spi.statefulstorage">Checkpoint</a>&nbsp;checkpoint)</code></th>
<td class="colLast">
<div class="block">Store instance checkpoint.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#storeComponentMetaData(org.apache.heron.spi.statefulstorage.CheckpointInfo,org.apache.heron.spi.statefulstorage.CheckpointMetadata)">storeComponentMetaData</a></span>&#8203;(<a href="CheckpointInfo.html" title="class in org.apache.heron.spi.statefulstorage">CheckpointInfo</a>&nbsp;info,
<a href="CheckpointMetadata.html" title="class in org.apache.heron.spi.statefulstorage">CheckpointMetadata</a>&nbsp;metadata)</code></th>
<td class="colLast">
<div class="block">Store medata data for component.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<section>
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="init(java.lang.String,java.util.Map)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>init</h4>
<pre class="methodSignature">void&nbsp;init&#8203;(java.lang.String&nbsp;topologyName,
java.util.Map&lt;java.lang.String,&#8203;java.lang.Object&gt;&nbsp;conf)
throws <a href="StatefulStorageException.html" title="class in org.apache.heron.spi.statefulstorage">StatefulStorageException</a></pre>
<div class="block">Initialize the Stateful Storage</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>topologyName</code> - The name of the topology.</dd>
<dd><code>conf</code> - An unmodifiableMap containing basic configuration</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="StatefulStorageException.html" title="class in org.apache.heron.spi.statefulstorage">StatefulStorageException</a></code></dd>
</dl>
</li>
</ul>
<a id="close()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>close</h4>
<pre class="methodSignature">void&nbsp;close()</pre>
<div class="block">Closes the Stateful Storage</div>
</li>
</ul>
<a id="storeCheckpoint(org.apache.heron.spi.statefulstorage.CheckpointInfo,org.apache.heron.spi.statefulstorage.Checkpoint)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>storeCheckpoint</h4>
<pre class="methodSignature">void&nbsp;storeCheckpoint&#8203;(<a href="CheckpointInfo.html" title="class in org.apache.heron.spi.statefulstorage">CheckpointInfo</a>&nbsp;info,
<a href="Checkpoint.html" title="class in org.apache.heron.spi.statefulstorage">Checkpoint</a>&nbsp;checkpoint)
throws <a href="StatefulStorageException.html" title="class in org.apache.heron.spi.statefulstorage">StatefulStorageException</a></pre>
<div class="block">Store instance checkpoint.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>info</code> - The information (reference key) for the checkpoint partition.</dd>
<dd><code>checkpoint</code> - The checkpoint data.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="StatefulStorageException.html" title="class in org.apache.heron.spi.statefulstorage">StatefulStorageException</a></code></dd>
</dl>
</li>
</ul>
<a id="restoreCheckpoint(org.apache.heron.spi.statefulstorage.CheckpointInfo)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>restoreCheckpoint</h4>
<pre class="methodSignature"><a href="Checkpoint.html" title="class in org.apache.heron.spi.statefulstorage">Checkpoint</a>&nbsp;restoreCheckpoint&#8203;(<a href="CheckpointInfo.html" title="class in org.apache.heron.spi.statefulstorage">CheckpointInfo</a>&nbsp;info)
throws <a href="StatefulStorageException.html" title="class in org.apache.heron.spi.statefulstorage">StatefulStorageException</a></pre>
<div class="block">Retrieve instance checkpoint.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>info</code> - The information (reference key) for the checkpoint partition.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The checkpoint data from the specified blob id.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="StatefulStorageException.html" title="class in org.apache.heron.spi.statefulstorage">StatefulStorageException</a></code></dd>
</dl>
</li>
</ul>
<a id="storeComponentMetaData(org.apache.heron.spi.statefulstorage.CheckpointInfo,org.apache.heron.spi.statefulstorage.CheckpointMetadata)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>storeComponentMetaData</h4>
<pre class="methodSignature">void&nbsp;storeComponentMetaData&#8203;(<a href="CheckpointInfo.html" title="class in org.apache.heron.spi.statefulstorage">CheckpointInfo</a>&nbsp;info,
<a href="CheckpointMetadata.html" title="class in org.apache.heron.spi.statefulstorage">CheckpointMetadata</a>&nbsp;metadata)
throws <a href="StatefulStorageException.html" title="class in org.apache.heron.spi.statefulstorage">StatefulStorageException</a></pre>
<div class="block">Store medata data for component. Ideally in distributed storages this function should only
be called once for each component. In local storages, the function should be called by
every instance and the data should be stored with the checkpoint data for each partition.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>info</code> - The information (reference key) for the checkpoint partition.</dd>
<dd><code>metadata</code> - The checkpoint metadata from a component.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="StatefulStorageException.html" title="class in org.apache.heron.spi.statefulstorage">StatefulStorageException</a></code></dd>
</dl>
</li>
</ul>
<a id="restoreComponentMetadata(org.apache.heron.spi.statefulstorage.CheckpointInfo)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>restoreComponentMetadata</h4>
<pre class="methodSignature"><a href="CheckpointMetadata.html" title="class in org.apache.heron.spi.statefulstorage">CheckpointMetadata</a>&nbsp;restoreComponentMetadata&#8203;(<a href="CheckpointInfo.html" title="class in org.apache.heron.spi.statefulstorage">CheckpointInfo</a>&nbsp;info)
throws <a href="StatefulStorageException.html" title="class in org.apache.heron.spi.statefulstorage">StatefulStorageException</a></pre>
<div class="block">Retrieve component metadata.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>info</code> - The information (reference key) for the checkpoint partition.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The checkpoint metadata for the component.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="StatefulStorageException.html" title="class in org.apache.heron.spi.statefulstorage">StatefulStorageException</a></code></dd>
</dl>
</li>
</ul>
<a id="dispose(java.lang.String,boolean)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>dispose</h4>
<pre class="methodSignature">void&nbsp;dispose&#8203;(java.lang.String&nbsp;oldestCheckpointPreserved,
boolean&nbsp;deleteAll)
throws <a href="StatefulStorageException.html" title="class in org.apache.heron.spi.statefulstorage">StatefulStorageException</a></pre>
<div class="block">Dispose checkpoints.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>oldestCheckpointPreserved</code> - The oldest checkpoint id to be preserved. All checkpoints
before this id should be deleted.</dd>
<dd><code>deleteAll</code> - Ignore the checkpoint Id and delete all checkpoints.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="StatefulStorageException.html" title="class in org.apache.heron.spi.statefulstorage">StatefulStorageException</a></code></dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</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" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses.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>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&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>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
</footer>
</body>
</html>