

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    
    <meta name="description" content="Apache Ozone Documentation">

    <title>Documentation for Apache Ozone</title>

    
    <link href="../css/bootstrap.min.css" rel="stylesheet">

    
    <link href="../css/ozonedoc.css" rel="stylesheet">

  </head>


  <body>

<nav class="navbar navbar-inverse navbar-fixed-top">
  <div class="container-fluid">
    <div class="navbar-header">
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#sidebar" aria-expanded="false" aria-controls="navbar">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
      <a href="../index.html" class="navbar-left ozone-logo">
        <img src="../ozone-logo-small.png"/>
      </a>
      <a class="navbar-brand hidden-xs" href="../index.html">
        Apache Ozone/HDDS documentation
      </a>
      <a class="navbar-brand visible-xs-inline" href="#">Apache Ozone</a>
    </div>
    <div id="navbar" class="navbar-collapse collapse">
      <ul class="nav navbar-nav navbar-right">
        <li><a href="https://github.com/apache/hadoop-ozone">Source</a></li>
        <li><a href="https://hadoop.apache.org">Apache Hadoop</a></li>
        <li><a href="https://apache.org">ASF</a></li>
      </ul>
    </div>
  </div>
</nav>

    <div class="container-fluid">
      <div class="row">
        
<div class="col-sm-2 col-md-2 sidebar" id="sidebar">
  <ul class="nav nav-sidebar">
    
    
        
            <li class="">
                
                   <a href="../index.html">
                

                    
                    <span>Overview</span>
                </a>
            </li>
        
    
        
            <li class="">
                
                   <a href="../start.html">
                

                    
                    <span>Getting Started</span>
                </a>
            </li>
        
    
        
            <li class="">
                <a href="../concept.html">
                    
                    <span>Architecture</span>
                </a>
                <ul class="nav">
                    
                        <li class="">
                           
                           <a href="../concept/overview.html">Overview</a>
                           
                        </li>
                    
                        <li class="">
                           
                           <a href="../concept/ozonemanager.html">Ozone Manager</a>
                           
                        </li>
                    
                        <li class="">
                           
                           <a href="../concept/storagecontainermanager.html">Storage Container Manager</a>
                           
                        </li>
                    
                        <li class="">
                           
                           <a href="../concept/containers.html">Containers</a>
                           
                        </li>
                    
                        <li class="">
                           
                           <a href="../concept/datanodes.html">Datanodes</a>
                           
                        </li>
                    
                        <li class="">
                           
                           <a href="../concept/recon.html">Recon</a>
                           
                        </li>
                    
                </ul>
            </li>
        
    
        
            <li class="">
                <a href="../feature.html">
                    
                    <span>Features</span>
                </a>
                <ul class="nav">
                    
                        <li class="">
                           
                           <a href="../feature/ha.html">High Availability</a>
                           
                        </li>
                    
                        <li class="">
                           
                           <a href="../feature/topology.html">Topology awareness</a>
                           
                        </li>
                    
                        <li class="">
                           
                           <a href="../feature/quota.html">Quota in Ozone</a>
                           
                        </li>
                    
                        <li class="">
                           
                           <a href="../feature/recon.html">Recon Server</a>
                           
                        </li>
                    
                        <li class="">
                           
                           <a href="../feature/observability.html">Observability</a>
                           
                        </li>
                    
                </ul>
            </li>
        
    
        
            <li class="">
                <a href="../interface.html">
                    
                    <span>Client Interfaces</span>
                </a>
                <ul class="nav">
                    
                        <li class="">
                           
                           <a href="../interface/ofs.html">Ofs (Hadoop compatible)</a>
                           
                        </li>
                    
                        <li class="">
                           
                           <a href="../interface/o3fs.html">O3fs (Hadoop compatible)</a>
                           
                        </li>
                    
                        <li class="">
                           
                           <a href="../interface/s3.html">S3 Protocol</a>
                           
                        </li>
                    
                        <li class="">
                           
                           <a href="../interface/cli.html">Command Line Interface</a>
                           
                        </li>
                    
                        <li class="">
                           
                           <a href="../interface/reconapi.html">Recon API</a>
                           
                        </li>
                    
                        <li class="">
                           
                           <a href="../interface/javaapi.html">Java API</a>
                           
                        </li>
                    
                        <li class="">
                           
                           <a href="../interface/csi.html">CSI Protocol</a>
                           
                        </li>
                    
                </ul>
            </li>
        
    
        
            <li class="">
                <a href="../security.html">
                    
                    <span>Security</span>
                </a>
                <ul class="nav">
                    
                        <li class="">
                           
                           <a href="../security/secureozone.html">Securing Ozone</a>
                           
                        </li>
                    
                        <li class="">
                           
                           <a href="../security/securingtde.html">Transparent Data Encryption</a>
                           
                        </li>
                    
                        <li class="">
                           
                           <a href="../security/gdpr.html">GDPR in Ozone</a>
                           
                        </li>
                    
                        <li class="">
                           
                           <a href="../security/securingdatanodes.html">Securing Datanodes</a>
                           
                        </li>
                    
                        <li class="">
                           
                           <a href="../security/securingozonehttp.html">Securing HTTP</a>
                           
                        </li>
                    
                        <li class="">
                           
                           <a href="../security/securings3.html">Securing S3</a>
                           
                        </li>
                    
                        <li class="">
                           
                           <a href="../security/securityacls.html">Ozone ACLs</a>
                           
                        </li>
                    
                        <li class="">
                           
                           <a href="../security/securitywithranger.html">Apache Ranger</a>
                           
                        </li>
                    
                </ul>
            </li>
        
    
        
            <li class="">
                
                   <a href="../tools.html">
                

                    
                    <span>Tools</span>
                </a>
            </li>
        
    
        
            <li class="">
                
                   <a href="../recipe.html">
                

                    
                    <span>Recipes</span>
                </a>
            </li>
        
    
    <li><a href="../design.html"><span><b>Design docs</b></span></a></li>
    <li class="visible-xs"><a href="#">References</a>
    <ul class="nav">
        <li><a href="https://github.com/apache/hadoop"><span class="glyphicon glyphicon-new-window" aria-hidden="true"></span> Source</a></li>
        <li><a href="https://hadoop.apache.org"><span class="glyphicon glyphicon-new-window" aria-hidden="true"></span> Apache Hadoop</a></li>
        <li><a href="https://apache.org"><span class="glyphicon glyphicon-new-window" aria-hidden="true"></span> ASF</a></li>
    </ul></li>
  </ul>

</div>

        <div class="col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2 main">
            <div class="col-md-9">
                <h1><a href="https://issues.apache.org/jira/browse/HDDS-1881">[HDDS-1881]</a> Decommissioning in Ozone (implementing) </h1>
                <div><i>Authors: Anu Engineer, Marton Elek, Stephen O&#39;Donnell</i><div class="pull-right">2019-07-31</div></div>
                <p>&nbsp</p>

                <div class="panel panel-success">
                    <div class="panel-heading">Summary</div>
                    <div class="panel-body">
                        Formal process to shut down machines in a safe way after the required replications.
                    </div>
                </div>

              <!--
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License. See accompanying LICENSE file.
-->
<h1 id="abstract">Abstract</h1>
<p>The goal of decommissioning is to turn off a selected set of machines without data loss. It may or may not require to move the existing replicas of the containers to other nodes.</p>
<p>There are two main classes of the decommissioning:</p>
<ul>
<li>
<p><strong>Maintenance mode</strong>: where the node is expected to be back after a while. It may not require replication of containers if enough replicas are available from other nodes (as we expect to have the current replicas after the restart.)</p>
</li>
<li>
<p><strong>Decommissioning</strong>: where the node won&rsquo;t be started again. All the data should be replicated according to the current replication rules.</p>
</li>
</ul>
<p>Goals:</p>
<ul>
<li>Decommissioning can be canceled any time</li>
<li>The progress of the decommissioning should be trackable</li>
<li>The nodes under decommissioning / maintenance mode should not been used for new pipelines / containers</li>
<li>The state of the datanodes should be persisted / replicated by the SCM (in HDFS the decommissioning info exclude/include lists are replicated manually by the admin). If datanode is marked for decommissioning this state be available after SCM and/or Datanode restarts.</li>
<li>We need to support validations before decommissioning (but the violations can be ignored by the admin).</li>
<li>The administrator should be notified when a node can be turned off.</li>
<li>The maintenance mode can be time constrained: if the node marked for maintenance for 1 week and the node is not up after one week, the containers should be considered as lost (DEAD node) and should be replicated.</li>
</ul>
<h1 id="introduction">Introduction</h1>
<p>Ozone is a highly available file system that relies on commodity hardware. In other words, Ozone is designed to handle failures of these nodes all the time.</p>
<p>The Storage Container Manager(SCM) is designed to monitor the node health and replicate blocks and containers as needed.</p>
<p>At times, Operators of the cluster can help the SCM by giving it hints. When removing a datanode, the operator can provide a hint. That is, a planned failure of the node is coming up, and SCM can make sure it reaches a safe state to handle this planned failure.</p>
<p>Some times, this failure is transient; that is, the operator is taking down this node temporarily. In that case, we can live with lower replica counts by being optimistic.</p>
<p>Both of these operations, <strong>Maintenance</strong>, and <strong>Decommissioning</strong> are similar from the Replication point of view. In both cases, and the user instructs us on how to handle an upcoming failure.</p>
<p>Today, SCM (<em>Replication Manager</em> component inside SCM) understands only one form of failure handling. This paper extends Replica Manager failure modes to allow users to request which failure handling model to be adopted(Optimistic or Pessimistic).</p>
<p>Based on physical realities, there are two responses to any perceived failure, to heal the system by taking corrective actions or ignore the failure since the actions in the future will heal the system automatically.</p>
<h2 id="user-experiences-decommissioning-vs-maintenance-mode">User Experiences (Decommissioning vs Maintenance mode)</h2>
<p>From the user&rsquo;s point of view, there are two kinds of planned failures that the user would like to communicate to Ozone.</p>
<p>The first kind is when a &lsquo;real&rsquo; failure is going to happen in the future. This &lsquo;real&rsquo; failure is the act of decommissioning. We denote this as &ldquo;decommission&rdquo; throughout this paper. The response that the user wants is SCM/Ozone to make replicas to deal with the planned failure.</p>
<p>The second kind is when the failure is &lsquo;transient.&rsquo; The user knows that this failure is temporary and cluster in most cases can safely ignore this issue. However, if the transient failures are going to cause a failure of availability; then the user would like the Ozone to take appropriate actions to address it.  An example of this case, is if the user put 3 data nodes into maintenance mode and switched them off.</p>
<p>The transient failure can violate the availability guarantees of Ozone; Since the user is telling us not to take corrective actions. Many times, the user does not understand the impact on availability while asking Ozone to ignore the failure.</p>
<p>So this paper proposes the following definitions for Decommission and Maintenance of data nodes.</p>
<p><strong>Decommission</strong> <em>of a data node is deemed to be complete when SCM/Ozone completes the replica of all containers on decommissioned data node to other data nodes.That is, the expected count matches the healthy count of containers in the cluster</em>.</p>
<p><strong>Maintenance mode</strong> of a data node is complete if Ozone can guarantee at <em>least one copy of every container</em> is available in other healthy data nodes.</p>
<h2 id="examples">Examples</h2>
<p>Here are some illustrative examples:</p>
<ol>
<li>
<p>Let us say we have a container, which has only one copy and resides on Machine A. If the user wants to put machine A into maintenance mode; Ozone will make a replica before entering the maintenance mode.</p>
</li>
<li>
<p>Suppose a container has two copies, and the user wants to put Machine A to maintenance mode. In this case; the Ozone understands that availability of the container is not affected and hence can decide to forgo replication.</p>
</li>
<li>
<p>Suppose a container has two copies, and the user wants to put Machine A into maintenance mode. However, the user wants to put the machine into maintenance mode for one month. As the period of maintenance mode increases, the probability of data loss increases; hence, Ozone might choose to make a replica of the container even if we are entering maintenance mode.</p>
</li>
<li>
<p>The semantics of decommissioning means that as long as we can find copies of containers in other machines, we can technically get away with calling decommission complete. Hence this clarification node; in the ordinary course of action; each decommission will create a replication flow for each container we have; however, it is possible to complete a decommission of a data node, even if we get a failure of the  data node being decommissioned. As long as we can find the other datanodes to replicate from and get the number of replicas needed backup to expected count we are good.</p>
</li>
<li>
<p>Let us say we have a copy of a container replica on Machine A, B, and C. It is possible to decommission all three machines at the same time, as decommissioning is just a status indicator of the data node and until we finish the decommissioning process.</p>
</li>
</ol>
<p>The user-visible features for both of these  are very similar:</p>
<p>Both Decommission and Maintenance mode can be canceled any time before the operation is marked as completed by SCM.</p>
<p>Decommissioned nodes, if and when added back, shall be treated as new data nodes; if they have blocks or containers on them, they can be used to reconstruct data.</p>
<h2 id="maintenance-mode-in-hdfs">Maintenance mode in HDFS</h2>
<p>HDFS supports decommissioning and maintenance mode similar to Ozone. This is a quick description of the HDFS approach.</p>
<p>The usage of HDFS maintenance mode:</p>
<ul>
<li>First, you set a minimum replica count on the cluster, which can be zero, but defaults to 1.</li>
<li>Then you can set a number of nodes into maintenance, with an expiry time or have them remain in maintenance forever, until they are manually removed. Nodes are put into maintenance in much the same way as nodes are decommissioned.</li>
<li>When a set of nodes go into maintenance, all blocks hosted on them are scanned and if the node going into maintenance would cause the number of replicas to fall below the minimum replica count, the relevant nodes go into a decommissioning like state while new replicas are made for the blocks.</li>
<li>Once the node goes into maintenance, it can be stopped etc and HDFS will not be concerned about the under-replicated state of the blocks.</li>
<li>When the expiry time passes, the node is put back to normal state (if it is online and heartbeating) or marked as dead, at which time new replicas will start to be made.</li>
</ul>
<p>This is very similar to decommissioning, and the code to track maintenance mode and ensure the blocks are replicated etc, is effectively the same code as with decommissioning. The one area that differs is probably in the replication monitor as it must understand that the node is expected to be offline.</p>
<p>The ideal way to use maintenance mode, is when you know there are a set of nodes you can stop without having to do any replications. In HDFS, the rack awareness states that all blocks should be on two racks, so that means a rack can be put into maintenance safely.</p>
<p>There is another feature in HDFS called &ldquo;upgrade Domain&rdquo; which allows each datanode to be assigned a group. By default there should be at least 3 groups (domains) and then each of the 3 replicas will be stored on different group, allowing one full group to be put into maintenance at once. That is not yet supported in CDH, but is something we are targeting for CDPD I believe.</p>
<p>One other difference with maintenance mode and decommissioning, is that you must have some sort of monitor thread checking for when maintenance is scheduled to end. HDFS solves this by having a class called the DatanodeAdminManager, and it tracks all nodes transitioning state, the under-replicated block count on them etc.</p>
<h1 id="implementation">Implementation</h1>
<h2 id="datanode-state-machine">Datanode state machine</h2>
<p><code>NodeStateManager</code> maintains the state of the connected datanodes. The possible states:</p>
<table>
<thead>
<tr>
<th>state</th>
<th>description</th>
</tr>
</thead>
<tbody>
<tr>
<td>HEALTHY</td>
<td>The node is up and running.</td>
</tr>
<tr>
<td>STALE</td>
<td>Some heartbeats were missing for an already missing nodes.</td>
</tr>
<tr>
<td>DEAD</td>
<td>The stale node has not been recovered.</td>
</tr>
<tr>
<td>ENTERING_MAINTENANCE</td>
<td>The in-progress state, scheduling is disabled but the node can&rsquo;t not been turned off due to in-progress replication.</td>
</tr>
<tr>
<td>IN_MAINTENANCE</td>
<td>Node can be turned off but we expected to get it back and have all the replicas.</td>
</tr>
<tr>
<td>DECOMMISSIONING</td>
<td>The in-progress state, scheduling is disabled, all the containers should be replicated to other nodes.</td>
</tr>
<tr>
<td>DECOMMISSIONED</td>
<td>The node can be turned off, all the containers are replicated to other machine</td>
</tr>
</tbody>
</table>
<h2 id="high-level-algorithm">High level algorithm</h2>
<p>The Algorithm is pretty simple from the Decommission or Maintenance point of view;</p>
<ol>
<li>
<p>Mark a data node as DECOMMISSIONING or ENTERING_MAINTENANCE. This implies that node is NOT healthy anymore; we assume the use of a single flag and law of excluded middle.</p>
</li>
<li>
<p>Pipelines should be shut down and wait for confirmation that all pipelines are shutdown. So no new I/O or container creation can happen on a Datanode that is part of decomm/maint.</p>
</li>
<li>
<p>Once the Node has been marked as DECOMMISSIONING or ENTERING_MAINTENANCE; the Node will generate a list of containers that need replication. This list is generated by the Replica Count decisions for each container; the Replica Count will be computed by Replica Manager;</p>
</li>
<li>
<p>Replica Manager will check the stop condition for each node. The following should be true for all the containers to go from DECOMMISSIONING to DECOMMISSIONED or from ENTERING_MAINTENANCE to IN_MAINTENANCE.</p>
</li>
</ol>
<ul>
<li>Container is closed.</li>
<li>We have at least one HEALTHY copy at all times.</li>
<li>For entering DECOMMISSIONED mode <code>maintenance + healthy</code> must equal to <code>expectedCount</code></li>
</ul>
<ol start="5">
<li>We will update the node state to DECOMMISSIONED or IN_MAINTENANCE reached state.</li>
</ol>
<p><em>Replica count</em> is a calculated number which represents the number of <em>missing</em> replicas. The number can be negative in case of an over-replicated container.</p>
<h2 id="calculation-of-the-_replica-count_-required-replicas">Calculation of the <em>Replica count</em> (required replicas)</h2>
<h3 id="counters--variables">Counters / Variables</h3>
<p>We have 7 different datanode state, but some of them can be combined. At high level we can group the existing state to three groups:</p>
<ul>
<li>healthy state (when the container is available)</li>
<li>maintenance (including IN_MAINTENANCE and ENTERING_MAINTENANCE)</li>
<li>all the others.</li>
</ul>
<p>To calculate the required steps (required replication + stop condition) we need counter about the first two categories.</p>
<p>Each counters should be calculated per container bases.</p>
<table>
<thead>
<tr>
<th>Node state</th>
<th>Variable (# of containers)</th>
</tr>
</thead>
<tbody>
<tr>
<td>HEALTHY</td>
<td><code>healthy</code></td>
</tr>
<tr>
<td>STALE + DEAD + DECOMMISSIONED</td>
<td></td>
</tr>
<tr>
<td>DECOMMISSIONING</td>
<td></td>
</tr>
<tr>
<td>ENTERING_MAINTENANCE + IN_MAINTENANCE</td>
<td><code>maintenance</code></td>
</tr>
</tbody>
</table>
<h3 id="the-current-replication-model">The current replication model</h3>
<p>The current replication model in SCM/Ozone is very simplistic. We compute the replication count or the number of replications that we need to do as:</p>
<pre><code>Replica count = expectedCount - currentCount
</code></pre><p>In case the <em>Replica count</em> is positive, it means that we need to make more replicas. If the number is negative, it means that we are over replicated and we need to remove some replicas of this container. If the Replica count for a container is zero; it means that we have the expected number of containers in the cluster.</p>
<p>To support idempotent placement strategies we should subtract the in-flight replications from the result: If there are one in-flight replication process and two replicas we won&rsquo;t start a new replication command unless the original command is timed out. The timeout is configured with <code>hdds.scm.replication.event.timeout</code> and the default value is 10 minutes.</p>
<p>More preciously the current algorithm is the following:</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-java" data-lang="java">replicaCount <span style="color:#f92672">=</span> expectedCount <span style="color:#f92672">-</span> healthy<span style="color:#f92672">;</span>

<span style="color:#66d9ef">if</span> <span style="color:#f92672">(</span>replicaCount <span style="color:#f92672">-</span> inflight copies <span style="color:#f92672">+</span> inflight deletes<span style="color:#f92672">)</span> <span style="color:#f92672">&gt;</span> 0 <span style="color:#f92672">{</span>
   <span style="color:#75715e">// container is over replicated
</span><span style="color:#75715e"></span><span style="color:#f92672">}.</span><span style="color:#a6e22e">else</span> <span style="color:#66d9ef">if</span> <span style="color:#f92672">(</span>replicaCount <span style="color:#f92672">-</span> inflight copies <span style="color:#f92672">+</span> inflight deletes<span style="color:#f92672">)</span> <span style="color:#f92672">&lt;</span>0 <span style="color:#f92672">{</span>
  <span style="color:#75715e">// handle under replicated containers
</span><span style="color:#75715e"></span><span style="color:#f92672">}</span>
</code></pre></div><p>The handling of inflight copies and deletes are independent from the decommissioning problem therefore here we focus only on the core mode:</p>
<pre><code>replicaCount = expectedCount - healthy;
</code></pre><h3 id="the-proposed-solution">The proposed solution</h3>
<p>To support the notion that a user can provide hints to the replication model, we propose to add two variables to the current model.</p>
<p>In the new model, we propose to break the <code>currentCount</code> into the two separate groups. That is <em>Healthy nodes</em> and <em>Maintenance nodes</em>. The new model replaces the currentCount with these two separate counts. The following function captures the code that drives the logic of computing Replica counts in the new model. The later section discusses the input and output of this model very extensively.</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-java" data-lang="java"><span style="color:#75715e">/**
</span><span style="color:#75715e"> * Calculate the number of the missing replicas.
</span><span style="color:#75715e"> *
</span><span style="color:#75715e"> * @return the number of the missing replicas.
</span><span style="color:#75715e">     If it&#39;s less than zero, the container is over replicated.
</span><span style="color:#75715e"> */</span>
<span style="color:#66d9ef">int</span> <span style="color:#a6e22e">getReplicationCount</span><span style="color:#f92672">(</span><span style="color:#66d9ef">int</span> expectedCount<span style="color:#f92672">,</span> <span style="color:#66d9ef">int</span> healthy<span style="color:#f92672">,</span> <span style="color:#66d9ef">int</span> maintenance<span style="color:#f92672">)</span> <span style="color:#f92672">{</span>

   <span style="color:#75715e">//for over replication, count only with the healthy replicas
</span><span style="color:#75715e"></span>   <span style="color:#66d9ef">if</span> <span style="color:#f92672">(</span>expectedCount <span style="color:#f92672">&lt;=</span> healthy<span style="color:#f92672">)</span> <span style="color:#f92672">{</span>
      <span style="color:#66d9ef">return</span> expectedCount <span style="color:#f92672">-</span> healthy<span style="color:#f92672">;</span>
   <span style="color:#f92672">}</span>

   replicaCount <span style="color:#f92672">=</span> expectedCount <span style="color:#f92672">-</span> <span style="color:#f92672">(</span>healthy <span style="color:#f92672">+</span> maintenance<span style="color:#f92672">);</span>

   <span style="color:#75715e">//at least one HEALTHY replicas should be guaranteed!
</span><span style="color:#75715e"></span>   <span style="color:#66d9ef">if</span> <span style="color:#f92672">(</span>replicaCount <span style="color:#f92672">==</span> 0 <span style="color:#f92672">&amp;&amp;</span> healthy <span style="color:#f92672">&lt;</span> 1<span style="color:#f92672">)</span> <span style="color:#f92672">{</span>
      replicaCount <span style="color:#f92672">++;</span>
   <span style="color:#f92672">}</span>

   <span style="color:#75715e">//over replication is already handled. Always return with
</span><span style="color:#75715e"></span>   <span style="color:#75715e">// positive as over replication is already handled
</span><span style="color:#75715e"></span>   <span style="color:#66d9ef">return</span> Math<span style="color:#f92672">.</span><span style="color:#a6e22e">max</span><span style="color:#f92672">(</span>0<span style="color:#f92672">,</span> replicaCount<span style="color:#f92672">);</span>
<span style="color:#f92672">}</span>

</code></pre></div><p>To understand the reasing behind the two special <code>if</code> condition check the examples below.</p>
<p>We also need to specify two end condition when the DECOMMISSIONING node can be moved to the DECOMMISSIONED state or the ENTERING_MAINTENANCE mode can be moved to the IN_MAINTENANCE state.</p>
<p>The following conditions should be true for all the containers and all the containers on the specific node should be closed.</p>
<p><strong>From DECOMMISSIONING to DECOMMISSIONED</strong>:</p>
<ul>
<li>There are at least one healthy replica</li>
<li>We have three replicas (both healthy and maintenance)</li>
</ul>
<p>Which means that our stop condition can be formalized as:</p>
<pre><code>(healthy &gt;= 1) &amp;&amp; (healthy + maintenance &gt;= 3)
</code></pre><p>Both the numbers can be configurable:</p>
<ul>
<li>1 is the minimum number of healthy replicas (<code>decommissioning.minimum.healthy-replicas</code>)</li>
<li>3 is the minimum number of existing replicas (<code>decommissioning.minimum.replicas</code>)</li>
</ul>
<p>For example <code>decommissioning.minimum.healthy-replicas</code> can be set to two if administrator would like to survive an additional node failure during the maintenance period.</p>
<p><strong>From ENTERING_MAINTENANCE to IN_MAINTENANCE:</strong></p>
<ul>
<li>There are at least one healthy replicas</li>
</ul>
<p>This is the weaker version of the previous condition:</p>
<pre><code>(healthy &gt;= 1)
</code></pre><h3 id="examples-normal-cases">Examples (normal cases)</h3>
<p>In this section we show example use cases together with the output of the proposed algorithm</p>
<h4 id="all-healthy">All healthy</h4>
<table>
<thead>
<tr>
<th>Node A</th>
<th>Node B</th>
<th>Node C</th>
<th>expctd</th>
<th>healthy</th>
<th>mainten</th>
<th>repCount</th>
</tr>
</thead>
<tbody>
<tr>
<td>HEALTHY</td>
<td>HEALTHY</td>
<td>HEALTHY</td>
<td>3</td>
<td>3</td>
<td>0</td>
<td>0</td>
</tr>
</tbody>
</table>
<p>The container C1 exists on machines A, B , and C. All the container reports tell us that the container is healthy.  Running the above algorithm, we get:</p>
<p><code>expected - healthy + maint. = 3 - (3 + 0) = 0</code></p>
<p>It means, <em>&ldquo;we don’t need no replication&rdquo;.</em></p>
<h4 id="one-failure">One failure</h4>
<table>
<thead>
<tr>
<th>Node A</th>
<th>Node B</th>
<th>Node C</th>
<th>expctd</th>
<th>healthy</th>
<th>mainten</th>
<th>repCount</th>
</tr>
</thead>
<tbody>
<tr>
<td>HEALTHY</td>
<td>HEALTHY</td>
<td>DEAD</td>
<td>3</td>
<td>2</td>
<td>0</td>
<td>1</td>
</tr>
</tbody>
</table>
<p>The machine C has failed, and as a result, the healthy count has gone down from <code>3</code> to <code>2</code>. This means that we need to start one replication flow.</p>
<p><code>ReplicaCount = expected - healthy + maint. =  3 - (2 + 0) = 1.</code></p>
<p>This means that the new model will handle failure cases just like the current model.</p>
<h4 id="one-decommissioning">One decommissioning</h4>
<table>
<thead>
<tr>
<th>Node A</th>
<th>Node B</th>
<th>Node C</th>
<th>expctd</th>
<th>healthy</th>
<th>mainten</th>
<th>repCount</th>
</tr>
</thead>
<tbody>
<tr>
<td>HEALTHY</td>
<td>HEALTHY</td>
<td>DECOMM</td>
<td>3</td>
<td>2</td>
<td>0</td>
<td>1</td>
</tr>
</tbody>
</table>
<p>In this case, machine C is being decommissioned. Therefore the healthy count has gone down to <code>2</code> , and decommission count is <code>1</code>. Since the</p>
<p><code>ReplicaCount = expected - healthy + maint`. we have `1 = 3 - (2 + 0)</code>,</p>
<p>this gives us the decommission count implicitly. The trick here is to realize that incrementing decommission automatically causes a decrement in the healthy count, which allows us not to have <em>decommission</em> in the equation explicitly.</p>
<p><strong>Stop condition</strong>: Not that if this containers is the only one on node C, node C can be moved to the DECOMMISSIONED state.</p>
<h4 id="failure--decommissioning">Failure + decommissioning</h4>
<table>
<thead>
<tr>
<th>Node A</th>
<th>Node B</th>
<th>Node C</th>
<th>expctd</th>
<th>healthy</th>
<th>mainten</th>
<th>repCount</th>
</tr>
</thead>
<tbody>
<tr>
<td>HEALTHY</td>
<td>DEAD</td>
<td>DECOMM</td>
<td>3</td>
<td>1</td>
<td>0</td>
<td>2</td>
</tr>
</tbody>
</table>
<p>Here is a case where we have a failure of a data node and a decommission of another data node. In this case, the container C1 needs two replica flows to heal itself. The equation is the same and we get</p>
<p><code>ReplicaCount(2) = ExpectecCount(3) - healthy(1)</code></p>
<p>The maintenance is still zero so ignored in this equation.</p>
<h4 id="1-failure--2-decommissioning">1 failure + 2 decommissioning</h4>
<table>
<thead>
<tr>
<th>Node A</th>
<th>Node B</th>
<th>Node C</th>
<th>expctd</th>
<th>healthy</th>
<th>mainten</th>
<th>repCount</th>
</tr>
</thead>
<tbody>
<tr>
<td>HEALTHY</td>
<td>DECOMM</td>
<td>DECOMM</td>
<td>3</td>
<td>0</td>
<td>0</td>
<td>3</td>
</tr>
</tbody>
</table>
<p>In this case, we have one failed data node and two data nodes being decommissioned. We need to get three replica flows in the system. This is achieved by:</p>
<pre><code>ReplicaCount(3) = ExpectedCount(3) - (healthy(0) + maintenance(0))
</code></pre><h4 id="maintenance-mode">Maintenance mode</h4>
<table>
<thead>
<tr>
<th>Node A</th>
<th>Node B</th>
<th>Node C</th>
<th>expctd</th>
<th>healthy</th>
<th>mainten</th>
<th>repCount</th>
</tr>
</thead>
<tbody>
<tr>
<td>HEALTHY</td>
<td>DEAD</td>
<td>MAINT</td>
<td>3</td>
<td>2</td>
<td>1</td>
<td>0</td>
</tr>
</tbody>
</table>
<p>This represents the normal maintenance mode, where a single machine is marked as in maintenance mode. This means the following:</p>
<pre><code>ReplicaCount(0) = ExpectedCount(3) - (healthy(2) + maintenance(1)
</code></pre><p>There are no replica flows since the user has asked us to move a single node into maintenance mode, and asked us explicitly not to worry about the single missing node.</p>
<p><strong>Stop condition</strong>: Not that if this containers is the only one on node C, node C can be moved to the IN_MAINTENANCE state.</p>
<h4 id="maintenance--decommissioning">Maintenance + decommissioning</h4>
<table>
<thead>
<tr>
<th>Node A</th>
<th>Node B</th>
<th>Node C</th>
<th>expctd</th>
<th>healthy</th>
<th>mainten</th>
<th>repCount</th>
</tr>
</thead>
<tbody>
<tr>
<td>HEALTHY</td>
<td>DECOMM</td>
<td>MAINT</td>
<td>3</td>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
</tbody>
</table>
<p><em>This is a fascinating case</em>; We have one good node; one decommissioned node and one node in maintenance mode. The expected result is that the replica manager will launch one replication flow to compensate for the node that is being decommissioned, and we also expect that there will be no replication for the node in maintenance mode.</p>
<pre><code>Replica Count (1) = expectedCount(3) - (healthy(1) + maintenance(1))
</code></pre><p>So as expected we have one replication flow in the system.</p>
<p><strong>Stop condition</strong>: Not that if this containers is the only one in the system:</p>
<ul>
<li>node C can be moved to the IN_MAINTENANCE state</li>
<li>node B can not be decommissioned (we need the three replicas first)</li>
</ul>
<h4 id="decommissioning-all-the-replicas">Decommissioning all the replicas</h4>
<table>
<thead>
<tr>
<th>Node A</th>
<th>Node B</th>
<th>Node C</th>
<th>expctd</th>
<th>healthy</th>
<th>mainten</th>
<th>repCount</th>
</tr>
</thead>
<tbody>
<tr>
<td>DECOMM</td>
<td>DECOMM</td>
<td>DECOMM</td>
<td>3</td>
<td>0</td>
<td>0</td>
<td>3</td>
</tr>
</tbody>
</table>
<p>In this case, we deal with all the data nodes being decommissioned. The number of healthy replicas for this container is 0, and hence:</p>
<pre><code>replicaCount (3) = expectedCount (3)- (healthy(0) + maintenance(0)).
</code></pre><p>This provides us with all 3 independent replica flows in the system.</p>
<h4 id="decommissioning-the-one-remaining-replicas">Decommissioning the one remaining replicas</h4>
<table>
<thead>
<tr>
<th>Node A</th>
<th>Node B</th>
<th>Node C</th>
<th>expctd</th>
<th>healthy</th>
<th>mainten</th>
<th>repCount</th>
</tr>
</thead>
<tbody>
<tr>
<td>DEAD</td>
<td>DEAD</td>
<td>DECOMM</td>
<td>3</td>
<td>0</td>
<td>0</td>
<td>3</td>
</tr>
</tbody>
</table>
<p>We have two failed nodes and one node in Decomm. It is the opposite of case Line 5, where we have one failed node and 2 nodes in Decomm. The expected results are the same, we get 3 flows.</p>
<h4 id="total-failure">Total failure</h4>
<table>
<thead>
<tr>
<th>Node A</th>
<th>Node B</th>
<th>Node C</th>
<th>expctd</th>
<th>healthy</th>
<th>mainten</th>
<th>repCount</th>
</tr>
</thead>
<tbody>
<tr>
<td>DEAD</td>
<td>DEAD</td>
<td>DEAD</td>
<td>3</td>
<td>0</td>
<td>0</td>
<td>3</td>
</tr>
</tbody>
</table>
<p>This is really an error condition. We have lost all 3 data nodes. The Replica Manager will compute that we need to rebuild 3 replicas, but we might not have a source to rebuild from.</p>
<h3 id="last-replica-is-on-entering_maintenance">Last replica is on ENTERING_MAINTENANCE</h3>
<table>
<thead>
<tr>
<th>Node A</th>
<th>Node B</th>
<th>Node C</th>
<th>expctd</th>
<th>healthy</th>
<th>mainten</th>
<th>repCount</th>
</tr>
</thead>
<tbody>
<tr>
<td>DEAD</td>
<td>MAINT</td>
<td>DEAD</td>
<td>3</td>
<td>0</td>
<td>1</td>
<td>2</td>
</tr>
</tbody>
</table>
<p>Is also an interesting case; we have lost 2 data nodes; and one node is being marked as Maint. Since we have 2 failed nodes, we need 2 replica flows in the system. However, the maintenance mode cannot be entered, since we will lose lone replica if we do that.</p>
<h3 id="all-maintenance">All maintenance</h3>
<table>
<thead>
<tr>
<th>Node A</th>
<th>Node B</th>
<th>Node C</th>
<th>expctd</th>
<th>healthy</th>
<th>mainten</th>
<th>repCount</th>
</tr>
</thead>
<tbody>
<tr>
<td>MAINT</td>
<td>MAINT</td>
<td>MAINT</td>
<td>3</td>
<td>0</td>
<td>3</td>
<td><em>1</em></td>
</tr>
</tbody>
</table>
<p>This is also a very special case; this is the case where the user is telling us to ignore the peril for all 3 replicas being offline. This means that the system will not be able to get to that container and would lead to potential I/O errors. Ozone will strive to avoid that case; this means that Ozone will hit the “if condition” and discover that we our ReplicCount is 0; since the user asked for it; but we are also going to lose all Replicas. At this point of time, we make a conscious decision to replicate one copy instead of obeying the user command and get to the situation where I/O can fail.</p>
<p><strong>This brings us back to the semantics of Maintenance mode in Ozone</strong>. If going into maintenance mode will not lead to a potential I/O failure, we will enter into the maintenance mode; Otherwise, we will replicate and enter into the maintenance mode after the replication is done. This is just the core replication algorithm, not the complete Decommission or Maintenance mode algorithms, just how the replica manager would behave.  Once we define the behavior of Replica Manager, rest of the algorithm is easy to construct.</p>
<p>Note: this is the case why we need the seconf <code>if</code> in the model (numbers in the brackets shows the actual value):</p>
<pre><code>   replicaCount(0) = expectedCount(3) - ( healthy(0) + maintenance(0) );


   //at least one HEALTHY replicas should be guaranteed!
   if (replicaCount(0) == 0 &amp;&amp; healthy(0) &lt; 1) {
      replicaCount ++;
   }
</code></pre><h3 id="over-replication">Over replication</h3>
<p>For over-replicated containers Ozone prefers to keep the replicas on the healthy nodes. We delete containers only if we have enough replicas on <em>healthy</em> nodes.</p>
<pre><code>int getReplicationCount(int expectedCount, int healthy, int maintenance) {

   //for over replication, count only with the healthy replicas
   if (expectedCount &lt;= healthy) {
      return expectedCount - healthy;
   }

   replicaCount = ... //calculate missing replicas

   //over replication is already handled. Always return with
   // positive as over replication is already handled
   return Math.max(0, replicaCount);
}
</code></pre><p>Please note that we always assume that the the in-flight deletion are applied and the container is already deleted.</p>
<p>There is a very rare case where the in-flight deletion is timed out (and as a result replication manager would assume the container is not deleted) BUT in the mean-time the container finally deleted. It can be survived with including the creation timestamp in the ContainerDeleteCommand.</p>
<h3 id="over-replication-examples">Over replication examples</h3>
<h4 id="4-replicas">4 replicas</h4>
<table>
<thead>
<tr>
<th>Node A</th>
<th>Node B</th>
<th>Node C</th>
<th>Node D</th>
<th>expctd</th>
<th>healthy</th>
<th>mainten</th>
<th>repCount</th>
</tr>
</thead>
<tbody>
<tr>
<td>HEALTHY</td>
<td>HEALTHY</td>
<td>HEALTHY</td>
<td>HEALTHY</td>
<td>3</td>
<td>4</td>
<td>0</td>
<td>0</td>
</tr>
</tbody>
</table>
<p>This is an easy case as we have too many replicas we can safely remove on.</p>
<pre><code>if (expectedCount &lt;= healthy) {
   return expectedCount -  healthy
}
</code></pre><h4 id="over-replicated-with-in_maintenance">over replicated with IN_MAINTENANCE</h4>
<table>
<thead>
<tr>
<th>Node A</th>
<th>Node B</th>
<th>Node C</th>
<th>Node D</th>
<th>expctd</th>
<th>healthy</th>
<th>mainten</th>
<th>repCount</th>
</tr>
</thead>
<tbody>
<tr>
<td>HEALTHY</td>
<td>HEALTHY</td>
<td>HEALTHY</td>
<td>MAINT</td>
<td>3</td>
<td>3</td>
<td>1</td>
<td>0</td>
</tr>
</tbody>
</table>
<p>In this case we will delete the forth replica only after node D is restored and healthy again. (expectedCount is not less than healthy). As the <code>expectedCount (3) &lt;= healthy (3)</code> the replicaCount will be calculated as <code>0</code>.</p>
<h4 id="over-replicated-with-in_maintenance-1">over replicated with IN_MAINTENANCE</h4>
<table>
<thead>
<tr>
<th>Node A</th>
<th>Node B</th>
<th>Node C</th>
<th>Node D</th>
<th>expctd</th>
<th>healthy</th>
<th>mainten</th>
<th>repCount</th>
</tr>
</thead>
<tbody>
<tr>
<td>HEALTHY</td>
<td>HEALTHY</td>
<td>MAINT</td>
<td>MAINT</td>
<td>3</td>
<td>2</td>
<td>2</td>
<td>0</td>
</tr>
</tbody>
</table>
<p>Here we are not over-repliacated as we don&rsquo;t have any healthy nodes. We will calculate the under-replication number as defined in the previous section:</p>
<pre><code>replicaCount(-1) = expectedCount(3) - ( healthy(2) + maintenance(2) );
</code></pre><p>The main algorithm would return with <code>replicaCount = -1</code> but as we return <code>Math.max(0,replicaCount)</code> the real response will be 0. Waiting for healthy nodes.</p>
<h3 id="handling-in-flight-replications">Handling in-flight replications</h3>
<p>In-flight replication requests and deletes are handled by the Replica Manager and the problem is orthogonal to the replication problem, but this section shows that the proposed model is not conflicted with the existing approach.</p>
<p>Let&rsquo;s say we have an under-replicated container and we already selected a new datanode to copy a new replica to that specific node.</p>
<table>
<thead>
<tr>
<th>Node A</th>
<th>Node B</th>
<th>Node C</th>
<th>expctd</th>
<th>healthy</th>
<th>mainten</th>
<th>repCount</th>
</tr>
</thead>
<tbody>
<tr>
<td>HEALTHY</td>
<td>HEALTHY</td>
<td>(copy)</td>
<td>3</td>
<td>2</td>
<td>0</td>
<td>1</td>
</tr>
</tbody>
</table>
<p>Here the Replication Manager detects that one replica is missing but the real copy shouldn&rsquo;t been requested as it&rsquo;s alread inprogress. ReplicaManager must not select a new datanode based on the ContainerPlacementPolicy implementation as the policy may or may not be idempotent.</p>
<p>For example if the placement policy would select a datanode randomly with each loop we would select a new datanode to replicate to.</p>
<p>To avoid such a situation Replica Manager maintains a list of the in-flight copies (in-memory) on the SCM side. In this list we have all the sent replication requests but they are removed after a given amount of time (10 minutes) by default.</p>
<p>With calculating the in-flight copy as a possible replication the Replication Manger doesn&rsquo;t need to request new replication.</p>
<p>When a datanode is marked to be decommissioned there could be any in-flight replication copy process in that time.</p>
<ul>
<li>At datanode we should stop all of the in-flight copy (datanodes should be notified about the DECOMMISSIONING/IN_MAINTENANCE state)</li>
<li>We never ask any non-healthy nodes to replicate containers.</li>
<li>In SCM, we don&rsquo;t need to do any special action
<ul>
<li>In <code>ReplicationManager</code> we already have a map about the inflight replications (<code>Map&lt;ContainerID, List&lt;InflightAction&gt;&gt;</code>).</li>
<li>During a normal replication the number of in-flight replications are counted as real replication (2 real replicas + 1 inflight replication = replica count 3). During this calculation we need to check the current state of the datanodes and ignore the inflight replication if they are assigned to a node which is in decommissioning state. (Or we should update the inflight map, in case of node state change)</li>
</ul>
</li>
</ul>
<h3 id="in-flight-examples">In-flight examples</h3>
<h4 id="maintenance--inflight">Maintenance + inflight</h4>
<table>
<thead>
<tr>
<th>Node A</th>
<th>Node B</th>
<th>Node C</th>
<th>expctd</th>
<th>healthy</th>
<th>mainten</th>
<th>repCount</th>
<th>copy</th>
</tr>
</thead>
<tbody>
<tr>
<td>HEALTHY</td>
<td>MAINT</td>
<td>copying</td>
<td>3</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
</tbody>
</table>
<p>Here one have one node ENTERING_MAINTENANCE state, and one replica is missing and already started to be replicated. We don&rsquo;t need to start a new copy and node B can be moved to the IN_MAINTENANCE mode.</p>
<pre><code>Replica Count (1) = expectedCount(3) - (healthy(1) + maintenance(1))
Containers to copy (0) = Replica Count (1) - inflight copies (1)
</code></pre><h4 id="maintenance--inflight-1">Maintenance + inflight</h4>
<table>
<thead>
<tr>
<th>Node A</th>
<th>Node B</th>
<th>Node C</th>
<th>expctd</th>
<th>healthy</th>
<th>mainten</th>
<th>repCount</th>
<th>copy</th>
</tr>
</thead>
<tbody>
<tr>
<td>DECOMM</td>
<td>copying</td>
<td>copying</td>
<td>3</td>
<td>0</td>
<td>0</td>
<td>3</td>
<td>1</td>
</tr>
</tbody>
</table>
<p>Node A can not be DECOMMISSIONED as we have no HEALTHY replicas at all.</p>
<h2 id="statefulness">Statefulness</h2>
<p>SCM stores all the node state in-memory. After a restart on the SCM side the datanode state can be lost.</p>
<p><strong>Ozone doesn&rsquo;t guarantee that decommissioning/maintenance mode state survives the SCM restarts!!!</strong></p>
<ul>
<li>If SCM restarts DECOMMISSIONED nodes will not report any more container reports and the nodes won&rsquo;t be registered.</li>
<li>ENTERING_MAINTENANCE and DECOMMISSIONING nodes will became HEALTHY again and the decommissioning CLI command should be repeated.</li>
<li>IN_MAINTENANCE nodes will become DEAD and all the containers will be replicated.</li>
</ul>
<p><em>Ozone assumes that the maintenance mode is used short-term and SCM is not restarted during this specific period.</em></p>
<p><em>Reasoning</em>:</p>
<p>Neither of the node state nor the container state are persisted in SCM side. The decommissioned state can be stored on the SCM side (or on the SCM side and the datanode side) which can provide better user experience (and may be implemented).</p>
<p>But to support maintenance mode after restart all the container information is required to be persisted (which is a too big architectural change).</p>
<p>To make a replication decision replication manager needs the number of healthy replicas (they are reported via heartbeats) AND the number of containers on the node which is in maintenance mode. The later one is not available if the SCM is restarted as the container map exists only in the memory and the node which is turned off can&rsquo;t report any more container reports. Therefore the information about the existing containers on the node which is in the maintenance mode <strong>can&rsquo;t be available'</strong>.</p>
<h2 id="throttling">Throttling</h2>
<p>SCM should avoid to request too many replication to live enough network bandwidth for the requests.</p>
<p>Replication Manager can easily throttle the replication requests based on <code>inflightReplication</code> map, but this problem is independent from the handling of the decommissioning / maintenance mode because it should be solved for any kind of replication not just for this.</p>
<h2 id="user-interface">User interface</h2>
<p>The decommissioning and maintenance mode can be administered with a CLI interface.</p>
<p>Required feature:</p>
<ul>
<li>Set the state of a datanode (to DECOMMISSIONING or ENTERING_MAINTENANCE)</li>
<li>Undo the decommissioning process</li>
<li>check the current progress:
<ul>
<li>This can be a table with the nodes, status of the nodes, number of containers, containers under replication and containers which doesn&rsquo;t much the stop condition yet (required replications)</li>
</ul>
</li>
<li>All the commands can support topology related filters (eg. display the nodes only for a specific rack or show the status of the nodes of s specific rack)</li>
<li>Check current replication information of one specific container (required to debug why the decommissioning is stuck)</li>
</ul>
<h2 id="checks-before-the-decommissioning">Checks before the decommissioning</h2>
<p>Decommissioning is requested via a new RPC call with the help of a new CLI tool. The server should check the current state of the cluster and deny the decommissioning if it&rsquo;s not possible. Possible violations:</p>
<ul>
<li>Not enough space to store the new replicas.</li>
<li>Not enough node to create all kind of pipelines</li>
</ul>
<p>In case of any violation, the request will fail, but any of theses rules can be turned off with a next request and the decommissioning can be forced.</p>
<h2 id="maintain-progress">Maintain progress</h2>
<p>We need to show the progress of the decommissioning process per node and cluster-wide. We already have the information about the under replicated containers, but we don&rsquo;t know the numbers of the containers before decommissioning.</p>
<p>Instead of saving the original number of the required replications before (which is very fragile) we don&rsquo;t provide an absolute progress just the numbers of the remaining replication:</p>
<pre><code> Node            | Status                 | # containers |  in-progress replications| required replication
 ----------------|------------------------|--------------|--------------------------|------------------------
 Node A          | ENTERING_MAINTENANCE   | 2837         | 12                       | 402
 Node B          | HEALTHY                | 1239         | 0                        | 0
 Node C          | IN_MAINTENANCE         | 2348         | 0                        | 0
</code></pre><p><code># containers</code> means the total number of the containers on the specific datanodes. To get the original number of the planned copies we can save the original &lsquo;container-to-node&rsquo; map in memory and show some progress and provide more information for the users.</p>

            </div>

        </div>
      </div>
    </div>



<footer class="footer">
  <div class="container">
    <span class="small text-muted">
      Version: 1.1.0, Last Modified: March 9, 2021 <a class="hide-child link primary-color" href="https://github.com/apache/ozone/commit/45eee3fa5d29f49eaed0758d1703d446d56e70fb">45eee3fa5</a>
    </span>
  </div>
</footer>



<script src="../js/jquery-3.5.1.min.js"></script>
<script src="../js/ozonedoc.js"></script>
<script src="../js/bootstrap.min.js"></script>


  </body>
</html>
