blob: 06292aa8068446c42668f361eb65a7fffbf22337 [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:06:56 GMT 2021 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>ShortCircuitRegistry (Apache Hadoop HDFS 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="ShortCircuitRegistry (Apache Hadoop HDFS 3.3.1 API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":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/ShortCircuitRegistry.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/hadoop/hdfs/server/datanode/SecureDataNodeStarter.SecureResources.html" title="class in org.apache.hadoop.hdfs.server.datanode"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../org/apache/hadoop/hdfs/server/datanode/ShortCircuitRegistry.NewShmInfo.html" title="class in org.apache.hadoop.hdfs.server.datanode"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/hadoop/hdfs/server/datanode/ShortCircuitRegistry.html" target="_top">Frames</a></li>
<li><a href="ShortCircuitRegistry.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.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">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><a href="#field.detail">Field</a>&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.hadoop.hdfs.server.datanode</div>
<h2 title="Class ShortCircuitRegistry" class="title">Class ShortCircuitRegistry</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.hadoop.hdfs.server.datanode.ShortCircuitRegistry</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public class <span class="typeNameLabel">ShortCircuitRegistry</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></pre>
<div class="block">Manages client short-circuit memory segments on the DataNode.
DFSClients request shared memory segments from the DataNode. The
ShortCircuitRegistry generates and manages these segments. Each segment
has a randomly generated 128-bit ID which uniquely identifies it. The
segments each contain several "slots."
Before performing a short-circuit read, DFSClients must request a pair of
file descriptors from the DataNode via the REQUEST_SHORT_CIRCUIT_FDS
operation. As part of this operation, DFSClients pass the ID of the shared
memory segment they would like to use to communicate information about this
replica, as well as the slot number within that segment they would like to
use. Slot allocation is always done by the client.
Slots are used to track the state of the block on the both the client and
datanode. When this DataNode mlocks a block, the corresponding slots for the
replicas are marked as "anchorable". Anchorable blocks can be safely read
without verifying the checksum. This means that BlockReaderLocal objects
using these replicas can skip checksumming. It also means that we can do
zero-copy reads on these replicas (the ZCR interface has no way of
verifying checksums.)
When a DN needs to munlock a block, it needs to first wait for the block to
be unanchored by clients doing a no-checksum read or a zero-copy read. The
DN also marks the block's slots as "unanchorable" to prevent additional
clients from initiating these operations in the future.
The counterpart of this class on the client is <code>DfsClientShmManager</code>.</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>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Class and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hdfs/server/datanode/ShortCircuitRegistry.NewShmInfo.html" title="class in org.apache.hadoop.hdfs.server.datanode">ShortCircuitRegistry.NewShmInfo</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hdfs/server/datanode/ShortCircuitRegistry.RegisteredShm.html" title="class in org.apache.hadoop.hdfs.server.datanode">ShortCircuitRegistry.RegisteredShm</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static interface&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hdfs/server/datanode/ShortCircuitRegistry.Visitor.html" title="interface in org.apache.hadoop.hdfs.server.datanode">ShortCircuitRegistry.Visitor</a></span></code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static org.slf4j.Logger</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hdfs/server/datanode/ShortCircuitRegistry.html#LOG">LOG</a></span></code>&nbsp;</td>
</tr>
</table>
</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/hadoop/hdfs/server/datanode/ShortCircuitRegistry.html#ShortCircuitRegistry-org.apache.hadoop.conf.Configuration-">ShortCircuitRegistry</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf)</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="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/hadoop/hdfs/server/datanode/ShortCircuitRegistry.NewShmInfo.html" title="class in org.apache.hadoop.hdfs.server.datanode">ShortCircuitRegistry.NewShmInfo</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hdfs/server/datanode/ShortCircuitRegistry.html#createNewMemorySegment-java.lang.String-org.apache.hadoop.net.unix.DomainSocket-">createNewMemorySegment</a></span>(<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;clientName,
org.apache.hadoop.net.unix.DomainSocket&nbsp;sock)</code>
<div class="block">Handle a DFSClient request to create a new memory segment.</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/hadoop/hdfs/server/datanode/ShortCircuitRegistry.html#getClientNames-org.apache.hadoop.hdfs.ExtendedBlockId-">getClientNames</a></span>(org.apache.hadoop.hdfs.ExtendedBlockId&nbsp;blockId)</code>&nbsp;</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hdfs/server/datanode/ShortCircuitRegistry.html#getShmNum--">getShmNum</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hdfs/server/datanode/ShortCircuitRegistry.html#processBlockInvalidation-org.apache.hadoop.hdfs.ExtendedBlockId-">processBlockInvalidation</a></span>(org.apache.hadoop.hdfs.ExtendedBlockId&nbsp;blockId)</code>
<div class="block">Invalidate any slot associated with a blockId that we are invalidating
(deleting) from this DataNode.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hdfs/server/datanode/ShortCircuitRegistry.html#processBlockMlockEvent-org.apache.hadoop.hdfs.ExtendedBlockId-">processBlockMlockEvent</a></span>(org.apache.hadoop.hdfs.ExtendedBlockId&nbsp;blockId)</code>
<div class="block">Process a block mlock event from the FsDatasetCache.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hdfs/server/datanode/ShortCircuitRegistry.html#processBlockMunlockRequest-org.apache.hadoop.hdfs.ExtendedBlockId-">processBlockMunlockRequest</a></span>(org.apache.hadoop.hdfs.ExtendedBlockId&nbsp;blockId)</code>
<div class="block">Mark any slots associated with this blockId as unanchorable.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hdfs/server/datanode/ShortCircuitRegistry.html#registerSlot-org.apache.hadoop.hdfs.ExtendedBlockId-org.apache.hadoop.hdfs.shortcircuit.ShortCircuitShm.SlotId-boolean-">registerSlot</a></span>(org.apache.hadoop.hdfs.ExtendedBlockId&nbsp;blockId,
org.apache.hadoop.hdfs.shortcircuit.ShortCircuitShm.SlotId&nbsp;slotId,
boolean&nbsp;isCached)</code>&nbsp;</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hdfs/server/datanode/ShortCircuitRegistry.html#removeShm-org.apache.hadoop.hdfs.shortcircuit.ShortCircuitShm-">removeShm</a></span>(org.apache.hadoop.hdfs.shortcircuit.ShortCircuitShm&nbsp;shm)</code>&nbsp;</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hdfs/server/datanode/ShortCircuitRegistry.html#shutdown--">shutdown</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hdfs/server/datanode/ShortCircuitRegistry.html#unregisterSlot-org.apache.hadoop.hdfs.shortcircuit.ShortCircuitShm.SlotId-">unregisterSlot</a></span>(org.apache.hadoop.hdfs.shortcircuit.ShortCircuitShm.SlotId&nbsp;slotId)</code>&nbsp;</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hdfs/server/datanode/ShortCircuitRegistry.html#visit-org.apache.hadoop.hdfs.server.datanode.ShortCircuitRegistry.Visitor-">visit</a></span>(<a href="../../../../../../org/apache/hadoop/hdfs/server/datanode/ShortCircuitRegistry.Visitor.html" title="interface in org.apache.hadoop.hdfs.server.datanode">ShortCircuitRegistry.Visitor</a>&nbsp;visitor)</code>&nbsp;</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#toString--" title="class or interface in java.lang">toString</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">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="LOG">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>LOG</h4>
<pre>public static final&nbsp;org.slf4j.Logger LOG</pre>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="ShortCircuitRegistry-org.apache.hadoop.conf.Configuration-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>ShortCircuitRegistry</h4>
<pre>public&nbsp;ShortCircuitRegistry(org.apache.hadoop.conf.Configuration&nbsp;conf)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></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="removeShm-org.apache.hadoop.hdfs.shortcircuit.ShortCircuitShm-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeShm</h4>
<pre>public&nbsp;void&nbsp;removeShm(org.apache.hadoop.hdfs.shortcircuit.ShortCircuitShm&nbsp;shm)</pre>
</li>
</ul>
<a name="processBlockMlockEvent-org.apache.hadoop.hdfs.ExtendedBlockId-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>processBlockMlockEvent</h4>
<pre>public&nbsp;void&nbsp;processBlockMlockEvent(org.apache.hadoop.hdfs.ExtendedBlockId&nbsp;blockId)</pre>
<div class="block">Process a block mlock event from the FsDatasetCache.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>blockId</code> - The block that was mlocked.</dd>
</dl>
</li>
</ul>
<a name="processBlockMunlockRequest-org.apache.hadoop.hdfs.ExtendedBlockId-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>processBlockMunlockRequest</h4>
<pre>public&nbsp;boolean&nbsp;processBlockMunlockRequest(org.apache.hadoop.hdfs.ExtendedBlockId&nbsp;blockId)</pre>
<div class="block">Mark any slots associated with this blockId as unanchorable.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>blockId</code> - The block ID.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>True if we should allow the munlock request.</dd>
</dl>
</li>
</ul>
<a name="processBlockInvalidation-org.apache.hadoop.hdfs.ExtendedBlockId-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>processBlockInvalidation</h4>
<pre>public&nbsp;void&nbsp;processBlockInvalidation(org.apache.hadoop.hdfs.ExtendedBlockId&nbsp;blockId)</pre>
<div class="block">Invalidate any slot associated with a blockId that we are invalidating
(deleting) from this DataNode. When a slot is invalid, the DFSClient will
not use the corresponding replica for new read or mmap operations (although
existing, ongoing read or mmap operations will complete.)</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>blockId</code> - The block ID.</dd>
</dl>
</li>
</ul>
<a name="getClientNames-org.apache.hadoop.hdfs.ExtendedBlockId-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getClientNames</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;getClientNames(org.apache.hadoop.hdfs.ExtendedBlockId&nbsp;blockId)</pre>
</li>
</ul>
<a name="createNewMemorySegment-java.lang.String-org.apache.hadoop.net.unix.DomainSocket-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createNewMemorySegment</h4>
<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hdfs/server/datanode/ShortCircuitRegistry.NewShmInfo.html" title="class in org.apache.hadoop.hdfs.server.datanode">ShortCircuitRegistry.NewShmInfo</a>&nbsp;createNewMemorySegment(<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;clientName,
org.apache.hadoop.net.unix.DomainSocket&nbsp;sock)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Handle a DFSClient request to create a new memory segment.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>clientName</code> - Client name as reported by the client.</dd>
<dd><code>sock</code> - The DomainSocket to associate with this memory
segment. When this socket is closed, or the
other side writes anything to the socket, the
segment will be closed. This can happen at any
time, including right after this function returns.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A NewShmInfo object. The caller must close the
NewShmInfo object once they are done with it.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - If the new memory segment could not be created.</dd>
</dl>
</li>
</ul>
<a name="registerSlot-org.apache.hadoop.hdfs.ExtendedBlockId-org.apache.hadoop.hdfs.shortcircuit.ShortCircuitShm.SlotId-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>registerSlot</h4>
<pre>public&nbsp;void&nbsp;registerSlot(org.apache.hadoop.hdfs.ExtendedBlockId&nbsp;blockId,
org.apache.hadoop.hdfs.shortcircuit.ShortCircuitShm.SlotId&nbsp;slotId,
boolean&nbsp;isCached)
throws org.apache.hadoop.fs.InvalidRequestException</pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.apache.hadoop.fs.InvalidRequestException</code></dd>
</dl>
</li>
</ul>
<a name="unregisterSlot-org.apache.hadoop.hdfs.shortcircuit.ShortCircuitShm.SlotId-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>unregisterSlot</h4>
<pre>public&nbsp;void&nbsp;unregisterSlot(org.apache.hadoop.hdfs.shortcircuit.ShortCircuitShm.SlotId&nbsp;slotId)
throws org.apache.hadoop.fs.InvalidRequestException</pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.apache.hadoop.fs.InvalidRequestException</code></dd>
</dl>
</li>
</ul>
<a name="shutdown--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>shutdown</h4>
<pre>public&nbsp;void&nbsp;shutdown()</pre>
</li>
</ul>
<a name="visit-org.apache.hadoop.hdfs.server.datanode.ShortCircuitRegistry.Visitor-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>visit</h4>
<pre>public&nbsp;boolean&nbsp;visit(<a href="../../../../../../org/apache/hadoop/hdfs/server/datanode/ShortCircuitRegistry.Visitor.html" title="interface in org.apache.hadoop.hdfs.server.datanode">ShortCircuitRegistry.Visitor</a>&nbsp;visitor)</pre>
</li>
</ul>
<a name="getShmNum--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getShmNum</h4>
<pre>public&nbsp;int&nbsp;getShmNum()</pre>
</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/ShortCircuitRegistry.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/hadoop/hdfs/server/datanode/SecureDataNodeStarter.SecureResources.html" title="class in org.apache.hadoop.hdfs.server.datanode"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../org/apache/hadoop/hdfs/server/datanode/ShortCircuitRegistry.NewShmInfo.html" title="class in org.apache.hadoop.hdfs.server.datanode"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/hadoop/hdfs/server/datanode/ShortCircuitRegistry.html" target="_top">Frames</a></li>
<li><a href="ShortCircuitRegistry.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.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">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><a href="#field.detail">Field</a>&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; 2008&#x2013;2021 <a href="https://www.apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>