<!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:10:59 GMT 2021 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>MemoryFederationStateStore (Apache Hadoop YARN Server Common 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="MemoryFederationStateStore (Apache Hadoop YARN Server Common 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,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":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/MemoryFederationStateStore.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/yarn/server/federation/store/impl/SQLFederationStateStore.html" title="class in org.apache.hadoop.yarn.server.federation.store.impl"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../../index.html?org/apache/hadoop/yarn/server/federation/store/impl/MemoryFederationStateStore.html" target="_top">Frames</a></li>
<li><a href="MemoryFederationStateStore.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><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.yarn.server.federation.store.impl</div>
<h2 title="Class MemoryFederationStateStore" class="title">Class MemoryFederationStateStore</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.yarn.server.federation.store.impl.MemoryFederationStateStore</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/FederationApplicationHomeSubClusterStore.html" title="interface in org.apache.hadoop.yarn.server.federation.store">FederationApplicationHomeSubClusterStore</a>, <a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/FederationMembershipStateStore.html" title="interface in org.apache.hadoop.yarn.server.federation.store">FederationMembershipStateStore</a>, <a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/FederationPolicyStore.html" title="interface in org.apache.hadoop.yarn.server.federation.store">FederationPolicyStore</a>, <a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/FederationStateStore.html" title="interface in org.apache.hadoop.yarn.server.federation.store">FederationStateStore</a></dd>
</dl>
<hr>
<br>
<pre>public class <span class="typeNameLabel">MemoryFederationStateStore</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/hadoop/yarn/server/federation/store/FederationStateStore.html" title="interface in org.apache.hadoop.yarn.server.federation.store">FederationStateStore</a></pre>
<div class="block">In-memory implementation of <a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/FederationStateStore.html" title="interface in org.apache.hadoop.yarn.server.federation.store"><code>FederationStateStore</code></a>.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== 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/yarn/server/federation/store/impl/MemoryFederationStateStore.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/yarn/server/federation/store/impl/MemoryFederationStateStore.html#MemoryFederationStateStore--">MemoryFederationStateStore</a></span>()</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/yarn/server/federation/store/records/AddApplicationHomeSubClusterResponse.html" title="class in org.apache.hadoop.yarn.server.federation.store.records">AddApplicationHomeSubClusterResponse</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/impl/MemoryFederationStateStore.html#addApplicationHomeSubCluster-org.apache.hadoop.yarn.server.federation.store.records.AddApplicationHomeSubClusterRequest-">addApplicationHomeSubCluster</a></span>(<a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/records/AddApplicationHomeSubClusterRequest.html" title="class in org.apache.hadoop.yarn.server.federation.store.records">AddApplicationHomeSubClusterRequest</a>&nbsp;request)</code>
<div class="block">Register the home <code>SubClusterId</code> of the newly submitted
 <code>ApplicationId</code>.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/impl/MemoryFederationStateStore.html#close--">close</a></span>()</code>
<div class="block">Perform any cleanup operations of the StateStore.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/records/DeleteApplicationHomeSubClusterResponse.html" title="class in org.apache.hadoop.yarn.server.federation.store.records">DeleteApplicationHomeSubClusterResponse</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/impl/MemoryFederationStateStore.html#deleteApplicationHomeSubCluster-org.apache.hadoop.yarn.server.federation.store.records.DeleteApplicationHomeSubClusterRequest-">deleteApplicationHomeSubCluster</a></span>(<a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/records/DeleteApplicationHomeSubClusterRequest.html" title="class in org.apache.hadoop.yarn.server.federation.store.records">DeleteApplicationHomeSubClusterRequest</a>&nbsp;request)</code>
<div class="block">Delete the mapping of home <code>SubClusterId</code> of a previously submitted
 <code>ApplicationId</code>.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/records/SubClusterDeregisterResponse.html" title="class in org.apache.hadoop.yarn.server.federation.store.records">SubClusterDeregisterResponse</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/impl/MemoryFederationStateStore.html#deregisterSubCluster-org.apache.hadoop.yarn.server.federation.store.records.SubClusterDeregisterRequest-">deregisterSubCluster</a></span>(<a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/records/SubClusterDeregisterRequest.html" title="class in org.apache.hadoop.yarn.server.federation.store.records">SubClusterDeregisterRequest</a>&nbsp;request)</code>
<div class="block">Deregister a <em>subcluster</em> identified by <code>SubClusterId</code> to
 change state in federation.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/records/GetApplicationHomeSubClusterResponse.html" title="class in org.apache.hadoop.yarn.server.federation.store.records">GetApplicationHomeSubClusterResponse</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/impl/MemoryFederationStateStore.html#getApplicationHomeSubCluster-org.apache.hadoop.yarn.server.federation.store.records.GetApplicationHomeSubClusterRequest-">getApplicationHomeSubCluster</a></span>(<a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/records/GetApplicationHomeSubClusterRequest.html" title="class in org.apache.hadoop.yarn.server.federation.store.records">GetApplicationHomeSubClusterRequest</a>&nbsp;request)</code>
<div class="block">Get information about the application identified by the input
 <code>ApplicationId</code>.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/records/GetApplicationsHomeSubClusterResponse.html" title="class in org.apache.hadoop.yarn.server.federation.store.records">GetApplicationsHomeSubClusterResponse</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/impl/MemoryFederationStateStore.html#getApplicationsHomeSubCluster-org.apache.hadoop.yarn.server.federation.store.records.GetApplicationsHomeSubClusterRequest-">getApplicationsHomeSubCluster</a></span>(<a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/records/GetApplicationsHomeSubClusterRequest.html" title="class in org.apache.hadoop.yarn.server.federation.store.records">GetApplicationsHomeSubClusterRequest</a>&nbsp;request)</code>
<div class="block">Get the <code>ApplicationHomeSubCluster</code> list representing the mapping of
 all submitted applications to it's home sub-cluster.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="../../../../../../../../org/apache/hadoop/yarn/server/records/Version.html" title="class in org.apache.hadoop.yarn.server.records">Version</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/impl/MemoryFederationStateStore.html#getCurrentVersion--">getCurrentVersion</a></span>()</code>
<div class="block">Get the <a href="../../../../../../../../org/apache/hadoop/yarn/server/records/Version.html" title="class in org.apache.hadoop.yarn.server.records"><code>Version</code></a> of the underlying federation state store client.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/records/GetSubClusterPoliciesConfigurationsResponse.html" title="class in org.apache.hadoop.yarn.server.federation.store.records">GetSubClusterPoliciesConfigurationsResponse</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/impl/MemoryFederationStateStore.html#getPoliciesConfigurations-org.apache.hadoop.yarn.server.federation.store.records.GetSubClusterPoliciesConfigurationsRequest-">getPoliciesConfigurations</a></span>(<a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/records/GetSubClusterPoliciesConfigurationsRequest.html" title="class in org.apache.hadoop.yarn.server.federation.store.records">GetSubClusterPoliciesConfigurationsRequest</a>&nbsp;request)</code>
<div class="block">Get a map of all queue-to-policy configurations.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/records/GetSubClusterPolicyConfigurationResponse.html" title="class in org.apache.hadoop.yarn.server.federation.store.records">GetSubClusterPolicyConfigurationResponse</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/impl/MemoryFederationStateStore.html#getPolicyConfiguration-org.apache.hadoop.yarn.server.federation.store.records.GetSubClusterPolicyConfigurationRequest-">getPolicyConfiguration</a></span>(<a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/records/GetSubClusterPolicyConfigurationRequest.html" title="class in org.apache.hadoop.yarn.server.federation.store.records">GetSubClusterPolicyConfigurationRequest</a>&nbsp;request)</code>
<div class="block">Get the policy configuration for a given queue.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/records/GetSubClusterInfoResponse.html" title="class in org.apache.hadoop.yarn.server.federation.store.records">GetSubClusterInfoResponse</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/impl/MemoryFederationStateStore.html#getSubCluster-org.apache.hadoop.yarn.server.federation.store.records.GetSubClusterInfoRequest-">getSubCluster</a></span>(<a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/records/GetSubClusterInfoRequest.html" title="class in org.apache.hadoop.yarn.server.federation.store.records">GetSubClusterInfoRequest</a>&nbsp;request)</code>
<div class="block">Get the membership information of <em>subcluster</em> as identified by
 <code>SubClusterId</code>.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/records/GetSubClustersInfoResponse.html" title="class in org.apache.hadoop.yarn.server.federation.store.records">GetSubClustersInfoResponse</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/impl/MemoryFederationStateStore.html#getSubClusters-org.apache.hadoop.yarn.server.federation.store.records.GetSubClustersInfoRequest-">getSubClusters</a></span>(<a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/records/GetSubClustersInfoRequest.html" title="class in org.apache.hadoop.yarn.server.federation.store.records">GetSubClustersInfoRequest</a>&nbsp;request)</code>
<div class="block">Get the membership information of all the <em>subclusters</em> that are
 currently participating in federation.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/impl/MemoryFederationStateStore.html#init-org.apache.hadoop.conf.Configuration-">init</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf)</code>
<div class="block">Initialize the FederationStore.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code><a href="../../../../../../../../org/apache/hadoop/yarn/server/records/Version.html" title="class in org.apache.hadoop.yarn.server.records">Version</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/impl/MemoryFederationStateStore.html#loadVersion--">loadVersion</a></span>()</code>
<div class="block">Load the version information from the federation state store.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/records/SubClusterRegisterResponse.html" title="class in org.apache.hadoop.yarn.server.federation.store.records">SubClusterRegisterResponse</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/impl/MemoryFederationStateStore.html#registerSubCluster-org.apache.hadoop.yarn.server.federation.store.records.SubClusterRegisterRequest-">registerSubCluster</a></span>(<a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/records/SubClusterRegisterRequest.html" title="class in org.apache.hadoop.yarn.server.federation.store.records">SubClusterRegisterRequest</a>&nbsp;request)</code>
<div class="block">Register a <em>subcluster</em> by publishing capabilities as represented by
 <code>SubClusterInfo</code> to indicate participation in federation.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/records/SetSubClusterPolicyConfigurationResponse.html" title="class in org.apache.hadoop.yarn.server.federation.store.records">SetSubClusterPolicyConfigurationResponse</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/impl/MemoryFederationStateStore.html#setPolicyConfiguration-org.apache.hadoop.yarn.server.federation.store.records.SetSubClusterPolicyConfigurationRequest-">setPolicyConfiguration</a></span>(<a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/records/SetSubClusterPolicyConfigurationRequest.html" title="class in org.apache.hadoop.yarn.server.federation.store.records">SetSubClusterPolicyConfigurationRequest</a>&nbsp;request)</code>
<div class="block">Set the policy configuration for a given queue.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/records/SubClusterHeartbeatResponse.html" title="class in org.apache.hadoop.yarn.server.federation.store.records">SubClusterHeartbeatResponse</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/impl/MemoryFederationStateStore.html#subClusterHeartbeat-org.apache.hadoop.yarn.server.federation.store.records.SubClusterHeartbeatRequest-">subClusterHeartbeat</a></span>(<a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/records/SubClusterHeartbeatRequest.html" title="class in org.apache.hadoop.yarn.server.federation.store.records">SubClusterHeartbeatRequest</a>&nbsp;request)</code>
<div class="block">Periodic heartbeat from a <code>ResourceManager</code> participating in
 federation to indicate liveliness.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/records/UpdateApplicationHomeSubClusterResponse.html" title="class in org.apache.hadoop.yarn.server.federation.store.records">UpdateApplicationHomeSubClusterResponse</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/impl/MemoryFederationStateStore.html#updateApplicationHomeSubCluster-org.apache.hadoop.yarn.server.federation.store.records.UpdateApplicationHomeSubClusterRequest-">updateApplicationHomeSubCluster</a></span>(<a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/records/UpdateApplicationHomeSubClusterRequest.html" title="class in org.apache.hadoop.yarn.server.federation.store.records">UpdateApplicationHomeSubClusterRequest</a>&nbsp;request)</code>
<div class="block">Update the home <code>SubClusterId</code> of a previously submitted
 <code>ApplicationId</code>.</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#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="MemoryFederationStateStore--">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>MemoryFederationStateStore</h4>
<pre>public&nbsp;MemoryFederationStateStore()</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="init-org.apache.hadoop.conf.Configuration-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>init</h4>
<pre>public&nbsp;void&nbsp;init(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/FederationStateStore.html#init-org.apache.hadoop.conf.Configuration-">FederationStateStore</a></code></span></div>
<div class="block">Initialize the FederationStore.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/FederationStateStore.html#init-org.apache.hadoop.conf.Configuration-">init</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/FederationStateStore.html" title="interface in org.apache.hadoop.yarn.server.federation.store">FederationStateStore</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>conf</code> - the cluster configuration</dd>
</dl>
</li>
</ul>
<a name="close--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>close</h4>
<pre>public&nbsp;void&nbsp;close()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/FederationStateStore.html#close--">FederationStateStore</a></code></span></div>
<div class="block">Perform any cleanup operations of the StateStore.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/FederationStateStore.html#close--">close</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/FederationStateStore.html" title="interface in org.apache.hadoop.yarn.server.federation.store">FederationStateStore</a></code></dd>
</dl>
</li>
</ul>
<a name="registerSubCluster-org.apache.hadoop.yarn.server.federation.store.records.SubClusterRegisterRequest-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>registerSubCluster</h4>
<pre>public&nbsp;<a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/records/SubClusterRegisterResponse.html" title="class in org.apache.hadoop.yarn.server.federation.store.records">SubClusterRegisterResponse</a>&nbsp;registerSubCluster(<a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/records/SubClusterRegisterRequest.html" title="class in org.apache.hadoop.yarn.server.federation.store.records">SubClusterRegisterRequest</a>&nbsp;request)
                                              throws org.apache.hadoop.yarn.exceptions.YarnException</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/FederationMembershipStateStore.html#registerSubCluster-org.apache.hadoop.yarn.server.federation.store.records.SubClusterRegisterRequest-">FederationMembershipStateStore</a></code></span></div>
<div class="block">Register a <em>subcluster</em> by publishing capabilities as represented by
 <code>SubClusterInfo</code> to indicate participation in federation. This is
 typically done during initialization or restart/failover of the
 subcluster's <code>ResourceManager</code>. Upon successful registration, an
 identifier for the <em>subcluster</em> which is unique across the federated
 cluster is returned. The identifier is static, i.e. preserved across
 restarts and failover.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/FederationMembershipStateStore.html#registerSubCluster-org.apache.hadoop.yarn.server.federation.store.records.SubClusterRegisterRequest-">registerSubCluster</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/FederationMembershipStateStore.html" title="interface in org.apache.hadoop.yarn.server.federation.store">FederationMembershipStateStore</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>request</code> - the capabilities of the subcluster that
          wants to participate in federation. The subcluster id is also
          specified in case registration is triggered by restart/failover</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>response empty on successfully if registration was successful</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.apache.hadoop.yarn.exceptions.YarnException</code> - if the request is invalid/fails</dd>
</dl>
</li>
</ul>
<a name="deregisterSubCluster-org.apache.hadoop.yarn.server.federation.store.records.SubClusterDeregisterRequest-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>deregisterSubCluster</h4>
<pre>public&nbsp;<a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/records/SubClusterDeregisterResponse.html" title="class in org.apache.hadoop.yarn.server.federation.store.records">SubClusterDeregisterResponse</a>&nbsp;deregisterSubCluster(<a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/records/SubClusterDeregisterRequest.html" title="class in org.apache.hadoop.yarn.server.federation.store.records">SubClusterDeregisterRequest</a>&nbsp;request)
                                                  throws org.apache.hadoop.yarn.exceptions.YarnException</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/FederationMembershipStateStore.html#deregisterSubCluster-org.apache.hadoop.yarn.server.federation.store.records.SubClusterDeregisterRequest-">FederationMembershipStateStore</a></code></span></div>
<div class="block">Deregister a <em>subcluster</em> identified by <code>SubClusterId</code> to
 change state in federation. This can be done to mark the sub cluster lost,
 deregistered, or decommissioned.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/FederationMembershipStateStore.html#deregisterSubCluster-org.apache.hadoop.yarn.server.federation.store.records.SubClusterDeregisterRequest-">deregisterSubCluster</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/FederationMembershipStateStore.html" title="interface in org.apache.hadoop.yarn.server.federation.store">FederationMembershipStateStore</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>request</code> - - the request to deregister the
          sub-cluster from federation.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>response empty on successfully deregistering the subcluster state</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.apache.hadoop.yarn.exceptions.YarnException</code> - if the request is invalid/fails</dd>
</dl>
</li>
</ul>
<a name="subClusterHeartbeat-org.apache.hadoop.yarn.server.federation.store.records.SubClusterHeartbeatRequest-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>subClusterHeartbeat</h4>
<pre>public&nbsp;<a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/records/SubClusterHeartbeatResponse.html" title="class in org.apache.hadoop.yarn.server.federation.store.records">SubClusterHeartbeatResponse</a>&nbsp;subClusterHeartbeat(<a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/records/SubClusterHeartbeatRequest.html" title="class in org.apache.hadoop.yarn.server.federation.store.records">SubClusterHeartbeatRequest</a>&nbsp;request)
                                                throws org.apache.hadoop.yarn.exceptions.YarnException</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/FederationMembershipStateStore.html#subClusterHeartbeat-org.apache.hadoop.yarn.server.federation.store.records.SubClusterHeartbeatRequest-">FederationMembershipStateStore</a></code></span></div>
<div class="block">Periodic heartbeat from a <code>ResourceManager</code> participating in
 federation to indicate liveliness. The heartbeat publishes the current
 capabilities as represented by <code>SubClusterInfo</code> of the subcluster.
 Currently response is empty if the operation was successful, if not an
 exception reporting reason for a failure.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/FederationMembershipStateStore.html#subClusterHeartbeat-org.apache.hadoop.yarn.server.federation.store.records.SubClusterHeartbeatRequest-">subClusterHeartbeat</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/FederationMembershipStateStore.html" title="interface in org.apache.hadoop.yarn.server.federation.store">FederationMembershipStateStore</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>request</code> - the capabilities of the subcluster that
          wants to keep alive its participation in federation</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>response currently empty on if heartbeat was successfully processed</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.apache.hadoop.yarn.exceptions.YarnException</code> - if the request is invalid/fails</dd>
</dl>
</li>
</ul>
<a name="getSubCluster-org.apache.hadoop.yarn.server.federation.store.records.GetSubClusterInfoRequest-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSubCluster</h4>
<pre>public&nbsp;<a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/records/GetSubClusterInfoResponse.html" title="class in org.apache.hadoop.yarn.server.federation.store.records">GetSubClusterInfoResponse</a>&nbsp;getSubCluster(<a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/records/GetSubClusterInfoRequest.html" title="class in org.apache.hadoop.yarn.server.federation.store.records">GetSubClusterInfoRequest</a>&nbsp;request)
                                        throws org.apache.hadoop.yarn.exceptions.YarnException</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/FederationMembershipStateStore.html#getSubCluster-org.apache.hadoop.yarn.server.federation.store.records.GetSubClusterInfoRequest-">FederationMembershipStateStore</a></code></span></div>
<div class="block">Get the membership information of <em>subcluster</em> as identified by
 <code>SubClusterId</code>. The membership information includes the cluster
 endpoint and current capabilities as represented by <code>SubClusterInfo</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/FederationMembershipStateStore.html#getSubCluster-org.apache.hadoop.yarn.server.federation.store.records.GetSubClusterInfoRequest-">getSubCluster</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/FederationMembershipStateStore.html" title="interface in org.apache.hadoop.yarn.server.federation.store">FederationMembershipStateStore</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>request</code> - the subcluster whose information is required</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the <code>SubClusterInfo</code>, or <code>null</code> if there is no mapping
         for the subcluster</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.apache.hadoop.yarn.exceptions.YarnException</code> - if the request is invalid/fails</dd>
</dl>
</li>
</ul>
<a name="getSubClusters-org.apache.hadoop.yarn.server.federation.store.records.GetSubClustersInfoRequest-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSubClusters</h4>
<pre>public&nbsp;<a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/records/GetSubClustersInfoResponse.html" title="class in org.apache.hadoop.yarn.server.federation.store.records">GetSubClustersInfoResponse</a>&nbsp;getSubClusters(<a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/records/GetSubClustersInfoRequest.html" title="class in org.apache.hadoop.yarn.server.federation.store.records">GetSubClustersInfoRequest</a>&nbsp;request)
                                          throws org.apache.hadoop.yarn.exceptions.YarnException</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/FederationMembershipStateStore.html#getSubClusters-org.apache.hadoop.yarn.server.federation.store.records.GetSubClustersInfoRequest-">FederationMembershipStateStore</a></code></span></div>
<div class="block">Get the membership information of all the <em>subclusters</em> that are
 currently participating in federation. The membership information includes
 the cluster endpoint and current capabilities as represented by
 <code>SubClusterInfo</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/FederationMembershipStateStore.html#getSubClusters-org.apache.hadoop.yarn.server.federation.store.records.GetSubClustersInfoRequest-">getSubClusters</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/FederationMembershipStateStore.html" title="interface in org.apache.hadoop.yarn.server.federation.store">FederationMembershipStateStore</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>request</code> - request for sub-clusters information</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a map of <code>SubClusterInfo</code> keyed by the <code>SubClusterId</code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.apache.hadoop.yarn.exceptions.YarnException</code> - if the request is invalid/fails</dd>
</dl>
</li>
</ul>
<a name="addApplicationHomeSubCluster-org.apache.hadoop.yarn.server.federation.store.records.AddApplicationHomeSubClusterRequest-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addApplicationHomeSubCluster</h4>
<pre>public&nbsp;<a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/records/AddApplicationHomeSubClusterResponse.html" title="class in org.apache.hadoop.yarn.server.federation.store.records">AddApplicationHomeSubClusterResponse</a>&nbsp;addApplicationHomeSubCluster(<a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/records/AddApplicationHomeSubClusterRequest.html" title="class in org.apache.hadoop.yarn.server.federation.store.records">AddApplicationHomeSubClusterRequest</a>&nbsp;request)
                                                                  throws org.apache.hadoop.yarn.exceptions.YarnException</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/FederationApplicationHomeSubClusterStore.html#addApplicationHomeSubCluster-org.apache.hadoop.yarn.server.federation.store.records.AddApplicationHomeSubClusterRequest-">FederationApplicationHomeSubClusterStore</a></code></span></div>
<div class="block">Register the home <code>SubClusterId</code> of the newly submitted
 <code>ApplicationId</code>. Currently response is empty if the operation was
 successful, if not an exception reporting reason for a failure. If a
 mapping for the application already existed, the <code>SubClusterId</code> in
 this response will return the existing mapping which might be different
 from that in the <code>AddApplicationHomeSubClusterRequest</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/FederationApplicationHomeSubClusterStore.html#addApplicationHomeSubCluster-org.apache.hadoop.yarn.server.federation.store.records.AddApplicationHomeSubClusterRequest-">addApplicationHomeSubCluster</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/FederationApplicationHomeSubClusterStore.html" title="interface in org.apache.hadoop.yarn.server.federation.store">FederationApplicationHomeSubClusterStore</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>request</code> - the request to register a new application with its home
          sub-cluster</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>upon successful registration of the application in the StateStore,
         <code>AddApplicationHomeSubClusterRequest</code> containing the home
         sub-cluster of the application. Otherwise, an exception reporting
         reason for a failure</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.apache.hadoop.yarn.exceptions.YarnException</code> - if the request is invalid/fails</dd>
</dl>
</li>
</ul>
<a name="updateApplicationHomeSubCluster-org.apache.hadoop.yarn.server.federation.store.records.UpdateApplicationHomeSubClusterRequest-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>updateApplicationHomeSubCluster</h4>
<pre>public&nbsp;<a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/records/UpdateApplicationHomeSubClusterResponse.html" title="class in org.apache.hadoop.yarn.server.federation.store.records">UpdateApplicationHomeSubClusterResponse</a>&nbsp;updateApplicationHomeSubCluster(<a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/records/UpdateApplicationHomeSubClusterRequest.html" title="class in org.apache.hadoop.yarn.server.federation.store.records">UpdateApplicationHomeSubClusterRequest</a>&nbsp;request)
                                                                        throws org.apache.hadoop.yarn.exceptions.YarnException</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/FederationApplicationHomeSubClusterStore.html#updateApplicationHomeSubCluster-org.apache.hadoop.yarn.server.federation.store.records.UpdateApplicationHomeSubClusterRequest-">FederationApplicationHomeSubClusterStore</a></code></span></div>
<div class="block">Update the home <code>SubClusterId</code> of a previously submitted
 <code>ApplicationId</code>. Currently response is empty if the operation was
 successful, if not an exception reporting reason for a failure.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/FederationApplicationHomeSubClusterStore.html#updateApplicationHomeSubCluster-org.apache.hadoop.yarn.server.federation.store.records.UpdateApplicationHomeSubClusterRequest-">updateApplicationHomeSubCluster</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/FederationApplicationHomeSubClusterStore.html" title="interface in org.apache.hadoop.yarn.server.federation.store">FederationApplicationHomeSubClusterStore</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>request</code> - the request to update the home sub-cluster of an
          application.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>empty on successful update of the application in the StateStore, if
         not an exception reporting reason for a failure</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.apache.hadoop.yarn.exceptions.YarnException</code> - if the request is invalid/fails</dd>
</dl>
</li>
</ul>
<a name="getApplicationHomeSubCluster-org.apache.hadoop.yarn.server.federation.store.records.GetApplicationHomeSubClusterRequest-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getApplicationHomeSubCluster</h4>
<pre>public&nbsp;<a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/records/GetApplicationHomeSubClusterResponse.html" title="class in org.apache.hadoop.yarn.server.federation.store.records">GetApplicationHomeSubClusterResponse</a>&nbsp;getApplicationHomeSubCluster(<a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/records/GetApplicationHomeSubClusterRequest.html" title="class in org.apache.hadoop.yarn.server.federation.store.records">GetApplicationHomeSubClusterRequest</a>&nbsp;request)
                                                                  throws org.apache.hadoop.yarn.exceptions.YarnException</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/FederationApplicationHomeSubClusterStore.html#getApplicationHomeSubCluster-org.apache.hadoop.yarn.server.federation.store.records.GetApplicationHomeSubClusterRequest-">FederationApplicationHomeSubClusterStore</a></code></span></div>
<div class="block">Get information about the application identified by the input
 <code>ApplicationId</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/FederationApplicationHomeSubClusterStore.html#getApplicationHomeSubCluster-org.apache.hadoop.yarn.server.federation.store.records.GetApplicationHomeSubClusterRequest-">getApplicationHomeSubCluster</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/FederationApplicationHomeSubClusterStore.html" title="interface in org.apache.hadoop.yarn.server.federation.store">FederationApplicationHomeSubClusterStore</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>request</code> - contains the application queried</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>ApplicationHomeSubCluster</code> containing the application's home
         subcluster</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.apache.hadoop.yarn.exceptions.YarnException</code> - if the request is invalid/fails</dd>
</dl>
</li>
</ul>
<a name="getApplicationsHomeSubCluster-org.apache.hadoop.yarn.server.federation.store.records.GetApplicationsHomeSubClusterRequest-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getApplicationsHomeSubCluster</h4>
<pre>public&nbsp;<a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/records/GetApplicationsHomeSubClusterResponse.html" title="class in org.apache.hadoop.yarn.server.federation.store.records">GetApplicationsHomeSubClusterResponse</a>&nbsp;getApplicationsHomeSubCluster(<a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/records/GetApplicationsHomeSubClusterRequest.html" title="class in org.apache.hadoop.yarn.server.federation.store.records">GetApplicationsHomeSubClusterRequest</a>&nbsp;request)
                                                                    throws org.apache.hadoop.yarn.exceptions.YarnException</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/FederationApplicationHomeSubClusterStore.html#getApplicationsHomeSubCluster-org.apache.hadoop.yarn.server.federation.store.records.GetApplicationsHomeSubClusterRequest-">FederationApplicationHomeSubClusterStore</a></code></span></div>
<div class="block">Get the <code>ApplicationHomeSubCluster</code> list representing the mapping of
 all submitted applications to it's home sub-cluster.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/FederationApplicationHomeSubClusterStore.html#getApplicationsHomeSubCluster-org.apache.hadoop.yarn.server.federation.store.records.GetApplicationsHomeSubClusterRequest-">getApplicationsHomeSubCluster</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/FederationApplicationHomeSubClusterStore.html" title="interface in org.apache.hadoop.yarn.server.federation.store">FederationApplicationHomeSubClusterStore</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>request</code> - empty representing all applications</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the mapping of all submitted application to it's home sub-cluster</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.apache.hadoop.yarn.exceptions.YarnException</code> - if the request is invalid/fails</dd>
</dl>
</li>
</ul>
<a name="deleteApplicationHomeSubCluster-org.apache.hadoop.yarn.server.federation.store.records.DeleteApplicationHomeSubClusterRequest-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>deleteApplicationHomeSubCluster</h4>
<pre>public&nbsp;<a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/records/DeleteApplicationHomeSubClusterResponse.html" title="class in org.apache.hadoop.yarn.server.federation.store.records">DeleteApplicationHomeSubClusterResponse</a>&nbsp;deleteApplicationHomeSubCluster(<a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/records/DeleteApplicationHomeSubClusterRequest.html" title="class in org.apache.hadoop.yarn.server.federation.store.records">DeleteApplicationHomeSubClusterRequest</a>&nbsp;request)
                                                                        throws org.apache.hadoop.yarn.exceptions.YarnException</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/FederationApplicationHomeSubClusterStore.html#deleteApplicationHomeSubCluster-org.apache.hadoop.yarn.server.federation.store.records.DeleteApplicationHomeSubClusterRequest-">FederationApplicationHomeSubClusterStore</a></code></span></div>
<div class="block">Delete the mapping of home <code>SubClusterId</code> of a previously submitted
 <code>ApplicationId</code>. Currently response is empty if the operation was
 successful, if not an exception reporting reason for a failure.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/FederationApplicationHomeSubClusterStore.html#deleteApplicationHomeSubCluster-org.apache.hadoop.yarn.server.federation.store.records.DeleteApplicationHomeSubClusterRequest-">deleteApplicationHomeSubCluster</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/FederationApplicationHomeSubClusterStore.html" title="interface in org.apache.hadoop.yarn.server.federation.store">FederationApplicationHomeSubClusterStore</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>request</code> - the request to delete the home sub-cluster of an
          application.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>empty on successful update of the application in the StateStore, if
         not an exception reporting reason for a failure</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.apache.hadoop.yarn.exceptions.YarnException</code> - if the request is invalid/fails</dd>
</dl>
</li>
</ul>
<a name="getPolicyConfiguration-org.apache.hadoop.yarn.server.federation.store.records.GetSubClusterPolicyConfigurationRequest-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPolicyConfiguration</h4>
<pre>public&nbsp;<a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/records/GetSubClusterPolicyConfigurationResponse.html" title="class in org.apache.hadoop.yarn.server.federation.store.records">GetSubClusterPolicyConfigurationResponse</a>&nbsp;getPolicyConfiguration(<a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/records/GetSubClusterPolicyConfigurationRequest.html" title="class in org.apache.hadoop.yarn.server.federation.store.records">GetSubClusterPolicyConfigurationRequest</a>&nbsp;request)
                                                                throws org.apache.hadoop.yarn.exceptions.YarnException</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/FederationPolicyStore.html#getPolicyConfiguration-org.apache.hadoop.yarn.server.federation.store.records.GetSubClusterPolicyConfigurationRequest-">FederationPolicyStore</a></code></span></div>
<div class="block">Get the policy configuration for a given queue.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/FederationPolicyStore.html#getPolicyConfiguration-org.apache.hadoop.yarn.server.federation.store.records.GetSubClusterPolicyConfigurationRequest-">getPolicyConfiguration</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/FederationPolicyStore.html" title="interface in org.apache.hadoop.yarn.server.federation.store">FederationPolicyStore</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>request</code> - the queue whose <code>SubClusterPolicyConfiguration</code> is
          required</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the <code>SubClusterPolicyConfiguration</code> for the specified queue,
         or <code>null</code> if there is no mapping for the queue</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.apache.hadoop.yarn.exceptions.YarnException</code> - if the request is invalid/fails</dd>
</dl>
</li>
</ul>
<a name="setPolicyConfiguration-org.apache.hadoop.yarn.server.federation.store.records.SetSubClusterPolicyConfigurationRequest-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setPolicyConfiguration</h4>
<pre>public&nbsp;<a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/records/SetSubClusterPolicyConfigurationResponse.html" title="class in org.apache.hadoop.yarn.server.federation.store.records">SetSubClusterPolicyConfigurationResponse</a>&nbsp;setPolicyConfiguration(<a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/records/SetSubClusterPolicyConfigurationRequest.html" title="class in org.apache.hadoop.yarn.server.federation.store.records">SetSubClusterPolicyConfigurationRequest</a>&nbsp;request)
                                                                throws org.apache.hadoop.yarn.exceptions.YarnException</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/FederationPolicyStore.html#setPolicyConfiguration-org.apache.hadoop.yarn.server.federation.store.records.SetSubClusterPolicyConfigurationRequest-">FederationPolicyStore</a></code></span></div>
<div class="block">Set the policy configuration for a given queue.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/FederationPolicyStore.html#setPolicyConfiguration-org.apache.hadoop.yarn.server.federation.store.records.SetSubClusterPolicyConfigurationRequest-">setPolicyConfiguration</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/FederationPolicyStore.html" title="interface in org.apache.hadoop.yarn.server.federation.store">FederationPolicyStore</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>request</code> - the <code>SubClusterPolicyConfiguration</code> with the
          corresponding queue</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>response empty on successfully updating the
         <code>SubClusterPolicyConfiguration</code> for the specified queue</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.apache.hadoop.yarn.exceptions.YarnException</code> - if the request is invalid/fails</dd>
</dl>
</li>
</ul>
<a name="getPoliciesConfigurations-org.apache.hadoop.yarn.server.federation.store.records.GetSubClusterPoliciesConfigurationsRequest-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPoliciesConfigurations</h4>
<pre>public&nbsp;<a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/records/GetSubClusterPoliciesConfigurationsResponse.html" title="class in org.apache.hadoop.yarn.server.federation.store.records">GetSubClusterPoliciesConfigurationsResponse</a>&nbsp;getPoliciesConfigurations(<a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/records/GetSubClusterPoliciesConfigurationsRequest.html" title="class in org.apache.hadoop.yarn.server.federation.store.records">GetSubClusterPoliciesConfigurationsRequest</a>&nbsp;request)
                                                                      throws org.apache.hadoop.yarn.exceptions.YarnException</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/FederationPolicyStore.html#getPoliciesConfigurations-org.apache.hadoop.yarn.server.federation.store.records.GetSubClusterPoliciesConfigurationsRequest-">FederationPolicyStore</a></code></span></div>
<div class="block">Get a map of all queue-to-policy configurations.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/FederationPolicyStore.html#getPoliciesConfigurations-org.apache.hadoop.yarn.server.federation.store.records.GetSubClusterPoliciesConfigurationsRequest-">getPoliciesConfigurations</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/FederationPolicyStore.html" title="interface in org.apache.hadoop.yarn.server.federation.store">FederationPolicyStore</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>request</code> - empty to represent all configured queues in the system</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the policies for all currently active queues in the system</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.apache.hadoop.yarn.exceptions.YarnException</code> - if the request is invalid/fails</dd>
</dl>
</li>
</ul>
<a name="getCurrentVersion--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCurrentVersion</h4>
<pre>public&nbsp;<a href="../../../../../../../../org/apache/hadoop/yarn/server/records/Version.html" title="class in org.apache.hadoop.yarn.server.records">Version</a>&nbsp;getCurrentVersion()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/FederationStateStore.html#getCurrentVersion--">FederationStateStore</a></code></span></div>
<div class="block">Get the <a href="../../../../../../../../org/apache/hadoop/yarn/server/records/Version.html" title="class in org.apache.hadoop.yarn.server.records"><code>Version</code></a> of the underlying federation state store client.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/FederationStateStore.html#getCurrentVersion--">getCurrentVersion</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/FederationStateStore.html" title="interface in org.apache.hadoop.yarn.server.federation.store">FederationStateStore</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the <a href="../../../../../../../../org/apache/hadoop/yarn/server/records/Version.html" title="class in org.apache.hadoop.yarn.server.records"><code>Version</code></a> of the underlying federation store client</dd>
</dl>
</li>
</ul>
<a name="loadVersion--">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>loadVersion</h4>
<pre>public&nbsp;<a href="../../../../../../../../org/apache/hadoop/yarn/server/records/Version.html" title="class in org.apache.hadoop.yarn.server.records">Version</a>&nbsp;loadVersion()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/FederationStateStore.html#loadVersion--">FederationStateStore</a></code></span></div>
<div class="block">Load the version information from the federation state store.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/FederationStateStore.html#loadVersion--">loadVersion</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../../../org/apache/hadoop/yarn/server/federation/store/FederationStateStore.html" title="interface in org.apache.hadoop.yarn.server.federation.store">FederationStateStore</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the <a href="../../../../../../../../org/apache/hadoop/yarn/server/records/Version.html" title="class in org.apache.hadoop.yarn.server.records"><code>Version</code></a> of the federation state store</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/MemoryFederationStateStore.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/yarn/server/federation/store/impl/SQLFederationStateStore.html" title="class in org.apache.hadoop.yarn.server.federation.store.impl"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../../index.html?org/apache/hadoop/yarn/server/federation/store/impl/MemoryFederationStateStore.html" target="_top">Frames</a></li>
<li><a href="MemoryFederationStateStore.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><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>
