blob: 0b1ca83bb7cd1b1106c4800d34b70137ae24d3e2 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (11.0.9.1) on Fri Sep 09 19:30:40 KST 2022 -->
<title>BlockManagerWorker (Nemo Project 0.4 API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2022-09-09">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.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.5.1.js"></script>
<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="BlockManagerWorker (Nemo Project 0.4 API)";
}
}
catch(err) {
}
//-->
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":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";
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="class-use/BlockManagerWorker.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" 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.nemo.runtime.executor.data</a></div>
<h2 title="Class BlockManagerWorker" class="title">Class BlockManagerWorker</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.apache.nemo.runtime.executor.data.BlockManagerWorker</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<pre>@ThreadSafe
public final class <span class="typeNameLabel">BlockManagerWorker</span>
extends java.lang.Object</pre>
<div class="block">Executor-side block manager.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<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="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="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code><a href="block/Block.html" title="interface in org.apache.nemo.runtime.executor.data.block">Block</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createBlock(java.lang.String,org.apache.nemo.common.ir.edge.executionproperty.DataStoreProperty.Value)">createBlock</a></span>&#8203;(java.lang.String&nbsp;blockId,
<a href="../../../common/ir/edge/executionproperty/DataStoreProperty.Value.html" title="enum in org.apache.nemo.common.ir.edge.executionproperty">DataStoreProperty.Value</a>&nbsp;blockStore)</code></th>
<td class="colLast">
<div class="block">Creates a new block.</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="#onInputContext(org.apache.nemo.runtime.executor.transfer.ByteInputContext)">onInputContext</a></span>&#8203;(<a href="../transfer/ByteInputContext.html" title="class in org.apache.nemo.runtime.executor.transfer">ByteInputContext</a>&nbsp;inputContext)</code></th>
<td class="colLast">
<div class="block">Respond to a block notification by another executor.</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="#onOutputContext(org.apache.nemo.runtime.executor.transfer.ByteOutputContext)">onOutputContext</a></span>&#8203;(<a href="../transfer/ByteOutputContext.html" title="class in org.apache.nemo.runtime.executor.transfer">ByteOutputContext</a>&nbsp;outputContext)</code></th>
<td class="colLast">
<div class="block">Respond to a block request by another executor.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>java.util.concurrent.CompletableFuture&lt;<a href="DataUtil.IteratorWithNumBytes.html" title="interface in org.apache.nemo.runtime.executor.data">DataUtil.IteratorWithNumBytes</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readBlock(java.lang.String,java.lang.String,org.apache.nemo.common.ir.executionproperty.ExecutionPropertyMap,org.apache.nemo.common.KeyRange)">readBlock</a></span>&#8203;(java.lang.String&nbsp;blockIdWildcard,
java.lang.String&nbsp;runtimeEdgeId,
<a href="../../../common/ir/executionproperty/ExecutionPropertyMap.html" title="class in org.apache.nemo.common.ir.executionproperty">ExecutionPropertyMap</a>&lt;<a href="../../../common/ir/executionproperty/EdgeExecutionProperty.html" title="class in org.apache.nemo.common.ir.executionproperty">EdgeExecutionProperty</a>&gt;&nbsp;edgeProperties,
<a href="../../../common/KeyRange.html" title="interface in org.apache.nemo.common">KeyRange</a>&nbsp;keyRange)</code></th>
<td class="colLast">
<div class="block">Inquiries the location of the specific block and routes the request to the local block manager worker
or to the lower data plane.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removeBlock(java.lang.String,org.apache.nemo.common.ir.edge.executionproperty.DataStoreProperty.Value)">removeBlock</a></span>&#8203;(java.lang.String&nbsp;blockId,
<a href="../../../common/ir/edge/executionproperty/DataStoreProperty.Value.html" title="enum in org.apache.nemo.common.ir.edge.executionproperty">DataStoreProperty.Value</a>&nbsp;blockStore)</code></th>
<td class="colLast">
<div class="block">Remove the block from store.</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="#writeBlock(org.apache.nemo.runtime.executor.data.block.Block,org.apache.nemo.common.ir.edge.executionproperty.DataStoreProperty.Value,int,org.apache.nemo.common.ir.edge.executionproperty.DataPersistenceProperty.Value)">writeBlock</a></span>&#8203;(<a href="block/Block.html" title="interface in org.apache.nemo.runtime.executor.data.block">Block</a>&nbsp;block,
<a href="../../../common/ir/edge/executionproperty/DataStoreProperty.Value.html" title="enum in org.apache.nemo.common.ir.edge.executionproperty">DataStoreProperty.Value</a>&nbsp;blockStore,
int&nbsp;expectedReadTotal,
<a href="../../../common/ir/edge/executionproperty/DataPersistenceProperty.Value.html" title="enum in org.apache.nemo.common.ir.edge.executionproperty">DataPersistenceProperty.Value</a>&nbsp;persistence)</code></th>
<td class="colLast">
<div class="block">Writes a block to a store.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="createBlock(java.lang.String,org.apache.nemo.common.ir.edge.executionproperty.DataStoreProperty.Value)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createBlock</h4>
<pre class="methodSignature">public&nbsp;<a href="block/Block.html" title="interface in org.apache.nemo.runtime.executor.data.block">Block</a>&nbsp;createBlock&#8203;(java.lang.String&nbsp;blockId,
<a href="../../../common/ir/edge/executionproperty/DataStoreProperty.Value.html" title="enum in org.apache.nemo.common.ir.edge.executionproperty">DataStoreProperty.Value</a>&nbsp;blockStore)</pre>
<div class="block">Creates a new block.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>blockId</code> - the ID of the block to create.</dd>
<dd><code>blockStore</code> - the store to place the block.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the created block.</dd>
</dl>
</li>
</ul>
<a id="readBlock(java.lang.String,java.lang.String,org.apache.nemo.common.ir.executionproperty.ExecutionPropertyMap,org.apache.nemo.common.KeyRange)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readBlock</h4>
<pre class="methodSignature">public&nbsp;java.util.concurrent.CompletableFuture&lt;<a href="DataUtil.IteratorWithNumBytes.html" title="interface in org.apache.nemo.runtime.executor.data">DataUtil.IteratorWithNumBytes</a>&gt;&nbsp;readBlock&#8203;(java.lang.String&nbsp;blockIdWildcard,
java.lang.String&nbsp;runtimeEdgeId,
<a href="../../../common/ir/executionproperty/ExecutionPropertyMap.html" title="class in org.apache.nemo.common.ir.executionproperty">ExecutionPropertyMap</a>&lt;<a href="../../../common/ir/executionproperty/EdgeExecutionProperty.html" title="class in org.apache.nemo.common.ir.executionproperty">EdgeExecutionProperty</a>&gt;&nbsp;edgeProperties,
<a href="../../../common/KeyRange.html" title="interface in org.apache.nemo.common">KeyRange</a>&nbsp;keyRange)</pre>
<div class="block">Inquiries the location of the specific block and routes the request to the local block manager worker
or to the lower data plane.
This can be invoked multiple times per blockId (maybe due to failures).</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>blockIdWildcard</code> - of the block.</dd>
<dd><code>runtimeEdgeId</code> - id of the runtime edge that corresponds to the block.</dd>
<dd><code>edgeProperties</code> - for the edge.</dd>
<dd><code>keyRange</code> - the key range descriptor</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the <code>CompletableFuture</code> of the block.</dd>
</dl>
</li>
</ul>
<a id="writeBlock(org.apache.nemo.runtime.executor.data.block.Block,org.apache.nemo.common.ir.edge.executionproperty.DataStoreProperty.Value,int,org.apache.nemo.common.ir.edge.executionproperty.DataPersistenceProperty.Value)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>writeBlock</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;writeBlock&#8203;(<a href="block/Block.html" title="interface in org.apache.nemo.runtime.executor.data.block">Block</a>&nbsp;block,
<a href="../../../common/ir/edge/executionproperty/DataStoreProperty.Value.html" title="enum in org.apache.nemo.common.ir.edge.executionproperty">DataStoreProperty.Value</a>&nbsp;blockStore,
int&nbsp;expectedReadTotal,
<a href="../../../common/ir/edge/executionproperty/DataPersistenceProperty.Value.html" title="enum in org.apache.nemo.common.ir.edge.executionproperty">DataPersistenceProperty.Value</a>&nbsp;persistence)</pre>
<div class="block">Writes a block to a store.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>block</code> - the block to write.</dd>
<dd><code>blockStore</code> - the store to save the block.</dd>
<dd><code>expectedReadTotal</code> - the expected number of read for this block.</dd>
<dd><code>persistence</code> - how to handle the used block.</dd>
</dl>
</li>
</ul>
<a id="removeBlock(java.lang.String,org.apache.nemo.common.ir.edge.executionproperty.DataStoreProperty.Value)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeBlock</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;removeBlock&#8203;(java.lang.String&nbsp;blockId,
<a href="../../../common/ir/edge/executionproperty/DataStoreProperty.Value.html" title="enum in org.apache.nemo.common.ir.edge.executionproperty">DataStoreProperty.Value</a>&nbsp;blockStore)</pre>
<div class="block">Remove the block from store.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>blockId</code> - the ID of the block to remove.</dd>
<dd><code>blockStore</code> - the store which contains the block.</dd>
</dl>
</li>
</ul>
<a id="onOutputContext(org.apache.nemo.runtime.executor.transfer.ByteOutputContext)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onOutputContext</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;onOutputContext&#8203;(<a href="../transfer/ByteOutputContext.html" title="class in org.apache.nemo.runtime.executor.transfer">ByteOutputContext</a>&nbsp;outputContext)
throws com.google.protobuf.InvalidProtocolBufferException</pre>
<div class="block">Respond to a block request by another executor.
<p>
This method is executed by {org.apache.nemo.runtime.executor.data.blocktransfer.BlockTransport} thread. \
Never execute a blocking call in this method!</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>outputContext</code> - <a href="../transfer/ByteOutputContext.html" title="class in org.apache.nemo.runtime.executor.transfer"><code>ByteOutputContext</code></a></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>com.google.protobuf.InvalidProtocolBufferException</code> - from errors during parsing context descriptor</dd>
</dl>
</li>
</ul>
<a id="onInputContext(org.apache.nemo.runtime.executor.transfer.ByteInputContext)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>onInputContext</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;onInputContext&#8203;(<a href="../transfer/ByteInputContext.html" title="class in org.apache.nemo.runtime.executor.transfer">ByteInputContext</a>&nbsp;inputContext)</pre>
<div class="block">Respond to a block notification by another executor.
<p>
This method is executed by {org.apache.nemo.runtime.executor.data.blocktransfer.BlockTransport}
thread. Never execute a blocking call in this method!</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>inputContext</code> - <a href="../transfer/ByteInputContext.html" title="class in org.apache.nemo.runtime.executor.transfer"><code>ByteInputContext</code></a></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="class-use/BlockManagerWorker.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" 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>
<p class="legalCopy"><small>Copyright &#169; 2020 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</body>
</html>