blob: f27b68b12a35fc6e9f288f59c8746bc4c2e2689f [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_292) on Tue Jun 15 06:05:35 GMT 2021 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>DfsClientShm (Apache Hadoop HDFS Client 3.3.1 API)</title>
<meta name="date" content="2021-06-15">
<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="DfsClientShm (Apache Hadoop HDFS Client 3.3.1 API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":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/DfsClientShm.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/hadoop/hdfs/shortcircuit/DfsClientShmManager.PerDatanodeVisitorInfo.html" title="class in org.apache.hadoop.hdfs.shortcircuit"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/hadoop/hdfs/shortcircuit/DfsClientShm.html" target="_top">Frames</a></li>
<li><a href="DfsClientShm.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><a href="#nested.classes.inherited.from.class.org.apache.hadoop.hdfs.shortcircuit.ShortCircuitShm">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#fields.inherited.from.class.org.apache.hadoop.hdfs.shortcircuit.ShortCircuitShm">Field</a>&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 name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.hadoop.hdfs.shortcircuit</div>
<h2 title="Class DfsClientShm" class="title">Class DfsClientShm</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/hadoop/hdfs/shortcircuit/ShortCircuitShm.html" title="class in org.apache.hadoop.hdfs.shortcircuit">org.apache.hadoop.hdfs.shortcircuit.ShortCircuitShm</a></li>
<li>
<ul class="inheritance">
<li>org.apache.hadoop.hdfs.shortcircuit.DfsClientShm</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd>org.apache.hadoop.net.unix.DomainSocketWatcher.Handler</dd>
</dl>
<hr>
<br>
<pre>public class <span class="typeNameLabel">DfsClientShm</span>
extends <a href="../../../../../org/apache/hadoop/hdfs/shortcircuit/ShortCircuitShm.html" title="class in org.apache.hadoop.hdfs.shortcircuit">ShortCircuitShm</a>
implements org.apache.hadoop.net.unix.DomainSocketWatcher.Handler</pre>
<div class="block">DfsClientShm is a subclass of ShortCircuitShm which is used by the
DfsClient.
When the UNIX domain socket associated with this shared memory segment
closes unexpectedly, we mark the slots inside this segment as disconnected.
ShortCircuitReplica objects that contain disconnected slots are stale,
and will not be used to service new reads or mmap operations.
However, in-progress read or mmap operations will continue to proceed.
Once the last slot is deallocated, the segment can be safely munmapped.
Slots may also become stale because the associated replica has been deleted
on the DataNode. In this case, the DataNode will clear the 'valid' bit.
The client will then see these slots as stale (see
#{ShortCircuitReplica#isStale}).</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.hadoop.hdfs.shortcircuit.ShortCircuitShm">
<!-- -->
</a>
<h3>Nested classes/interfaces inherited from class&nbsp;org.apache.hadoop.hdfs.shortcircuit.<a href="../../../../../org/apache/hadoop/hdfs/shortcircuit/ShortCircuitShm.html" title="class in org.apache.hadoop.hdfs.shortcircuit">ShortCircuitShm</a></h3>
<code><a href="../../../../../org/apache/hadoop/hdfs/shortcircuit/ShortCircuitShm.ShmId.html" title="class in org.apache.hadoop.hdfs.shortcircuit">ShortCircuitShm.ShmId</a>, <a href="../../../../../org/apache/hadoop/hdfs/shortcircuit/ShortCircuitShm.Slot.html" title="class in org.apache.hadoop.hdfs.shortcircuit">ShortCircuitShm.Slot</a>, <a href="../../../../../org/apache/hadoop/hdfs/shortcircuit/ShortCircuitShm.SlotId.html" title="class in org.apache.hadoop.hdfs.shortcircuit">ShortCircuitShm.SlotId</a>, <a href="../../../../../org/apache/hadoop/hdfs/shortcircuit/ShortCircuitShm.SlotIterator.html" title="class in org.apache.hadoop.hdfs.shortcircuit">ShortCircuitShm.SlotIterator</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.hadoop.hdfs.shortcircuit.ShortCircuitShm">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;org.apache.hadoop.hdfs.shortcircuit.<a href="../../../../../org/apache/hadoop/hdfs/shortcircuit/ShortCircuitShm.html" title="class in org.apache.hadoop.hdfs.shortcircuit">ShortCircuitShm</a></h3>
<code><a href="../../../../../org/apache/hadoop/hdfs/shortcircuit/ShortCircuitShm.html#BYTES_PER_SLOT">BYTES_PER_SLOT</a></code></li>
</ul>
</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>org.apache.hadoop.hdfs.shortcircuit.DfsClientShmManager.EndpointShmManager</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hdfs/shortcircuit/DfsClientShm.html#getEndpointShmManager--">getEndpointShmManager</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>org.apache.hadoop.hdfs.net.DomainPeer</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hdfs/shortcircuit/DfsClientShm.html#getPeer--">getPeer</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hdfs/shortcircuit/DfsClientShm.html#handle-org.apache.hadoop.net.unix.DomainSocket-">handle</a></span>(org.apache.hadoop.net.unix.DomainSocket&nbsp;sock)</code>
<div class="block">Handle the closure of the UNIX domain socket associated with this shared
memory segment by marking this segment as stale.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hdfs/shortcircuit/DfsClientShm.html#isDisconnected--">isDisconnected</a></span>()</code>
<div class="block">Determine if the shared memory segment is disconnected from the DataNode.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hdfs.shortcircuit.ShortCircuitShm">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.hadoop.hdfs.shortcircuit.<a href="../../../../../org/apache/hadoop/hdfs/shortcircuit/ShortCircuitShm.html" title="class in org.apache.hadoop.hdfs.shortcircuit">ShortCircuitShm</a></h3>
<code><a href="../../../../../org/apache/hadoop/hdfs/shortcircuit/ShortCircuitShm.html#allocAndRegisterSlot-org.apache.hadoop.hdfs.ExtendedBlockId-">allocAndRegisterSlot</a>, <a href="../../../../../org/apache/hadoop/hdfs/shortcircuit/ShortCircuitShm.html#free--">free</a>, <a href="../../../../../org/apache/hadoop/hdfs/shortcircuit/ShortCircuitShm.html#getShmId--">getShmId</a>, <a href="../../../../../org/apache/hadoop/hdfs/shortcircuit/ShortCircuitShm.html#getSlot-int-">getSlot</a>, <a href="../../../../../org/apache/hadoop/hdfs/shortcircuit/ShortCircuitShm.html#isEmpty--">isEmpty</a>, <a href="../../../../../org/apache/hadoop/hdfs/shortcircuit/ShortCircuitShm.html#isFull--">isFull</a>, <a href="../../../../../org/apache/hadoop/hdfs/shortcircuit/ShortCircuitShm.html#registerSlot-int-org.apache.hadoop.hdfs.ExtendedBlockId-">registerSlot</a>, <a href="../../../../../org/apache/hadoop/hdfs/shortcircuit/ShortCircuitShm.html#slotIterator--">slotIterator</a>, <a href="../../../../../org/apache/hadoop/hdfs/shortcircuit/ShortCircuitShm.html#toString--">toString</a>, <a href="../../../../../org/apache/hadoop/hdfs/shortcircuit/ShortCircuitShm.html#unregisterSlot-int-">unregisterSlot</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">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="getEndpointShmManager--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getEndpointShmManager</h4>
<pre>public&nbsp;org.apache.hadoop.hdfs.shortcircuit.DfsClientShmManager.EndpointShmManager&nbsp;getEndpointShmManager()</pre>
</li>
</ul>
<a name="getPeer--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPeer</h4>
<pre>public&nbsp;org.apache.hadoop.hdfs.net.DomainPeer&nbsp;getPeer()</pre>
</li>
</ul>
<a name="isDisconnected--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isDisconnected</h4>
<pre>public&nbsp;boolean&nbsp;isDisconnected()</pre>
<div class="block">Determine if the shared memory segment is disconnected from the DataNode.
This must be called with the DfsClientShmManager lock held.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>True if the shared memory segment is stale.</dd>
</dl>
</li>
</ul>
<a name="handle-org.apache.hadoop.net.unix.DomainSocket-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>handle</h4>
<pre>public&nbsp;boolean&nbsp;handle(org.apache.hadoop.net.unix.DomainSocket&nbsp;sock)</pre>
<div class="block">Handle the closure of the UNIX domain socket associated with this shared
memory segment by marking this segment as stale.
If there are no slots associated with this shared memory segment, it will
be freed immediately in this function.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>handle</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.net.unix.DomainSocketWatcher.Handler</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/DfsClientShm.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/hadoop/hdfs/shortcircuit/DfsClientShmManager.PerDatanodeVisitorInfo.html" title="class in org.apache.hadoop.hdfs.shortcircuit"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/hadoop/hdfs/shortcircuit/DfsClientShm.html" target="_top">Frames</a></li>
<li><a href="DfsClientShm.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><a href="#nested.classes.inherited.from.class.org.apache.hadoop.hdfs.shortcircuit.ShortCircuitShm">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#fields.inherited.from.class.org.apache.hadoop.hdfs.shortcircuit.ShortCircuitShm">Field</a>&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 name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2008&#x2013;2021 <a href="https://www.apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>