> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kinetica.com/llms.txt
> Use this file to discover all available pages before exploring further.

# adminAddRanks

<div className="kinetica-doxygen">
  <div id="a1d0c793c02d58baf7032b1a9da79e88c" />

  <h2 className="memtitle"><span className="permalink"><a href="#a1d0c793c02d58baf7032b1a9da79e88c">◆ </a></span>adminAddRanks() <span className="overload">\[1/2]</span></h2>

  <div className="memitem">
    <div className="memproto">
      <table className="mlabels">
        <tr>
          <td className="mlabels-left">
            <table className="memname">
              <tr>
                <td className="memname"><a className="el" href="/content/api/cs/classkinetica_1_1AdminAddRanksResponse">AdminAddRanksResponse</a> kinetica.Kinetica.adminAddRanks </td>
                <td>(</td>
                <td className="paramtype"><a className="el" href="/content/api/cs/classkinetica_1_1AdminAddRanksRequest">AdminAddRanksRequest</a></td>
                <td className="paramname"><span className="paramname"><span className="em">request\_</span></span></td>
                <td>)</td>

                <td />
              </tr>
            </table>
          </td>

          <td className="mlabels-right"> <span className="mlabels"><span className="mlabel inline">inline</span></span> </td>
        </tr>
      </table>
    </div>

    <div className="memdoc">
      <p>Add one or more ranks to an existing <a className="el" href="/content/api/cs/classkinetica_1_1Kinetica" title="API to talk to Kinetica Database.">Kinetica</a> cluster. </p>
      <p>The new ranks will not contain any data initially (other than replicated tables) and will not be assigned any shards. To rebalance data and shards across the cluster, use <a className="el" href="#a95473307d777fc901751184765eb6089">adminRebalance</a>.</p>
      <p>The database must be offline for this operation, see <a className="el" href="#a882db0cc0becff6a6fa84423929e8bae">adminOffline</a></p>
      <p>For example, if attempting to add three new ranks (two ranks on host 172.123.45.67 and one rank on host 172.123.45.68) to a <a className="el" href="/content/api/cs/classkinetica_1_1Kinetica" title="API to talk to Kinetica Database.">Kinetica</a> cluster with additional configuration parameters:</p>
      <p>\* <a className="el" href="/content/api/cs/classkinetica_1_1AdminAddRanksRequest#a161e5f0cda6403d6d994245a095b246d">hosts</a> would be an array including 172.123.45.67 in the first two indices (signifying two ranks being added to host 172.123.45.67) and 172.123.45.68 in the last index (signifying one rank being added to host 172.123.45.67)</p>
      <p>\* <a className="el" href="/content/api/cs/classkinetica_1_1AdminAddRanksRequest#a514f72d071989dd84624f26de91db1e9">config\_params</a> would be an array of maps, with each map corresponding to the ranks being added in <a className="el" href="/content/api/cs/classkinetica_1_1AdminAddRanksRequest#a161e5f0cda6403d6d994245a095b246d">hosts</a>. The key of each map would be the configuration parameter name and the value would be the parameter's value, e.g. '{"{"}"rank.gpu":"1"{"}"}'</p>
      <p>This endpoint's processing includes copying all replicated table data to the new rank(s) and therefore could take a long time. The API call may time out if run directly. It is recommended to run this endpoint asynchronously via <a className="el" href="#ae37231de334eee413b2fdf5515890e53">createJob</a>.</p>
      <p>This method should be used for on-premise deployments only. </p>

      <div className="dl params">
        <div className="dt">Parameters</div>

        <div className="dd">
          <table className="params">
            <tr>
              <td className="paramname">request\_</td>
              <td>Request object containing the parameters for the operation.</td>
            </tr>
          </table>
        </div>
      </div>

      <div className="dl section return">
        <div className="dt">Returns</div>
        <div className="dd">Response object containing the result of the operation. </div>
      </div>

      <p className="definition">Definition at line <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/KineticaFunctions.cs#L311">311</a> of file <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/KineticaFunctions.cs">KineticaFunctions.cs</a>.</p>
    </div>
  </div>

  <div id="a44149af328d169733e7573ff4dca9208" />

  <h2 className="memtitle"><span className="permalink"><a href="#a44149af328d169733e7573ff4dca9208">◆ </a></span>adminAddRanks() <span className="overload">\[2/2]</span></h2>

  <div className="memitem">
    <div className="memproto">
      <table className="mlabels">
        <tr>
          <td className="mlabels-left">
            <table className="memname">
              <tr>
                <td className="memname"><a className="el" href="/content/api/cs/classkinetica_1_1AdminAddRanksResponse">AdminAddRanksResponse</a> kinetica.Kinetica.adminAddRanks </td>
                <td>(</td>
                <td className="paramtype">IList\< string ></td>
                <td className="paramname"><span className="paramname"><span className="em">hosts</span></span>, </td>
              </tr>

              <tr>
                <td className="paramkey" />

                <td />

                <td className="paramtype">IList\< IDictionary\< string, string > ></td>
                <td className="paramname"><span className="paramname"><span className="em">config\_params</span></span>, </td>
              </tr>

              <tr>
                <td className="paramkey" />

                <td />

                <td className="paramtype">IDictionary\< string, string ></td>
                <td className="paramname"><span className="paramname"><span className="em">options</span></span><span className="paramdefsep"> = </span><span className="paramdefval">null</span> )</td>
              </tr>
            </table>
          </td>

          <td className="mlabels-right"> <span className="mlabels"><span className="mlabel inline">inline</span></span> </td>
        </tr>
      </table>
    </div>

    <div className="memdoc">
      <p>Add one or more ranks to an existing <a className="el" href="/content/api/cs/classkinetica_1_1Kinetica" title="API to talk to Kinetica Database.">Kinetica</a> cluster. </p>
      <p>The new ranks will not contain any data initially (other than replicated tables) and will not be assigned any shards. To rebalance data and shards across the cluster, use <a className="el" href="#a95473307d777fc901751184765eb6089">adminRebalance</a>.</p>
      <p>The database must be offline for this operation, see <a className="el" href="#a882db0cc0becff6a6fa84423929e8bae">adminOffline</a></p>
      <p>For example, if attempting to add three new ranks (two ranks on host 172.123.45.67 and one rank on host 172.123.45.68) to a <a className="el" href="/content/api/cs/classkinetica_1_1Kinetica" title="API to talk to Kinetica Database.">Kinetica</a> cluster with additional configuration parameters:</p>
      <p>\* <span className="em">hosts</span> would be an array including 172.123.45.67 in the first two indices (signifying two ranks being added to host 172.123.45.67) and 172.123.45.68 in the last index (signifying one rank being added to host 172.123.45.67)</p>
      <p>\* <span className="em">config\_params</span> would be an array of maps, with each map corresponding to the ranks being added in <span className="em">hosts</span> . The key of each map would be the configuration parameter name and the value would be the parameter's value, e.g. '{"{"}"rank.gpu":"1"{"}"}'</p>
      <p>This endpoint's processing includes copying all replicated table data to the new rank(s) and therefore could take a long time. The API call may time out if run directly. It is recommended to run this endpoint asynchronously via <a className="el" href="#ae37231de334eee413b2fdf5515890e53">createJob</a>.</p>
      <p>This method should be used for on-premise deployments only. </p>

      <div className="dl params">
        <div className="dt">Parameters</div>

        <div className="dd">
          <table className="params">
            <tr>
              <td className="paramname">hosts</td>
              <td>Array of host IP addresses (matching a hostN.address from the gpudb.conf file), or host identifiers (e.g. 'host0' from the gpudb.conf file), on which to add ranks to the cluster. The hosts must already be in the cluster. If needed beforehand, to add a new host to the cluster use <a className="el" href="#a64c693befeaaa1d989cb5803ed90a16e">adminAddHost</a>. Include the same entry as many times as there are ranks to add to the cluster, e.g., if two ranks on host 172.123.45.67 should be added, <span className="em">hosts</span> could look like '\["172.123.45.67", "172.123.45.67"]'. All ranks will be added simultaneously, i.e. they're not added in the order of this array. Each entry in this array corresponds to the entry at the same index in the <span className="em">config\_params</span> .</td>
            </tr>

            <tr>
              <td className="paramname">config\_params</td>
              <td>Array of maps containing configuration parameters to apply to the new ranks found in <span className="em">hosts</span> . For example, '{"{"}"rank.gpu":"2", "tier.ram.rank.limit":"10000000000"{"}"}'. Currently, the available parameters are rank-specific parameters in the <a href="/content/config/#config-main-network" target="_top">Network</a>, <a href="/content/config/#config-main-hardware" target="_top">Hardware</a>, <a href="/content/config/#config-main-text-search" target="_top">Text Search</a>, and <a href="/content/config/#config-main-ram-tier" target="_top">RAM Tiered Storage</a> sections in the gpudb.conf file, with the key exception of the 'rankN.host' settings in the Network section that will be determined by <span className="em">hosts</span> instead. Though many of these configuration parameters typically are affixed with 'rankN' in the gpudb.conf file (where N is the rank number), the 'N' should be omitted in <span className="em">config\_params</span> as the new rank number(s) are not allocated until the ranks have been added to the cluster. Each entry in this array corresponds to the entry at the same index in the <span className="em">hosts</span> . This array must either be completely empty or have the same number of elements as the <span className="em">hosts</span> . An empty <span className="em">config\_params</span> array will result in the new ranks being set with default parameters.</td>
            </tr>

            <tr>
              <td className="paramname">options</td>

              <td>
                Optional parameters.

                <ul>
                  <li>
                    <a className="el" href="/content/api/cs/structkinetica_1_1AdminAddRanksRequest_1_1Options#a608db1d17aca3b921e5184e2ae8ba1fc">DRY\_RUN</a>: If <a className="el" href="/content/api/cs/structkinetica_1_1AdminAddRanksRequest_1_1Options#a258b0deb5644fe22a8472073fc9a7a49">TRUE</a>, only validation checks will be performed. No ranks are added. Supported values:

                    <ul>
                      <li> <a className="el" href="/content/api/cs/structkinetica_1_1AdminAddRanksRequest_1_1Options#a258b0deb5644fe22a8472073fc9a7a49">TRUE</a> </li>
                      <li> <a className="el" href="/content/api/cs/structkinetica_1_1AdminAddRanksRequest_1_1Options#a5fbc1d8a594b5c4b519ccc553144194f">FALSE</a> </li>
                    </ul>

                    The default value is <a className="el" href="/content/api/cs/structkinetica_1_1AdminAddRanksRequest_1_1Options#a5fbc1d8a594b5c4b519ccc553144194f">FALSE</a>.
                  </li>
                </ul>

                The default value is an empty Dictionary.
              </td>
            </tr>
          </table>
        </div>
      </div>

      <div className="dl section return">
        <div className="dt">Returns</div>
        <div className="dd">Response object containing the result of the operation. </div>
      </div>

      <p className="definition">Definition at line <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/KineticaFunctions.cs#L453">453</a> of file <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/KineticaFunctions.cs">KineticaFunctions.cs</a>.</p>
    </div>
  </div>

  <div id="a7b5752ac671bc56279b6f87e5b33af64" />

  <h2 className="memtitle"><span className="permalink"><a href="#a7b5752ac671bc56279b6f87e5b33af64">◆ </a></span>AdminAddRanksAsync() <span className="overload">\[1/2]</span></h2>

  <div className="memitem">
    <div className="memproto">
      <table className="mlabels">
        <tr>
          <td className="mlabels-left">
            <table className="memname">
              <tr>
                <td className="memname">async System.Threading.Tasks.Task\< <a className="el" href="/content/api/cs/classkinetica_1_1AdminAddRanksResponse">AdminAddRanksResponse</a> > kinetica.Kinetica.AdminAddRanksAsync </td>
                <td>(</td>
                <td className="paramtype"><a className="el" href="/content/api/cs/classkinetica_1_1AdminAddRanksRequest">AdminAddRanksRequest</a></td>
                <td className="paramname"><span className="paramname"><span className="em">request\_</span></span>, </td>
              </tr>

              <tr>
                <td className="paramkey" />

                <td />

                <td className="paramtype">System.Threading.CancellationToken</td>
                <td className="paramname"><span className="paramname"><span className="em">cancellationToken</span></span><span className="paramdefsep"> = </span><span className="paramdefval">default</span> )</td>
              </tr>
            </table>
          </td>

          <td className="mlabels-right"> <span className="mlabels"><span className="mlabel inline">inline</span></span> </td>
        </tr>
      </table>
    </div>

    <div className="memdoc">
      <p>Add one or more ranks to an existing <a className="el" href="/content/api/cs/classkinetica_1_1Kinetica" title="API to talk to Kinetica Database.">Kinetica</a> cluster. </p>
      <p>(async)</p>
      <p>The new ranks will not contain any data initially (other than replicated tables) and will not be assigned any shards. To rebalance data and shards across the cluster, use <a className="el" href="#a95473307d777fc901751184765eb6089">adminRebalance</a>.</p>
      <p>The database must be offline for this operation, see <a className="el" href="#a882db0cc0becff6a6fa84423929e8bae">adminOffline</a></p>
      <p>For example, if attempting to add three new ranks (two ranks on host 172.123.45.67 and one rank on host 172.123.45.68) to a <a className="el" href="/content/api/cs/classkinetica_1_1Kinetica" title="API to talk to Kinetica Database.">Kinetica</a> cluster with additional configuration parameters:</p>
      <p>\* <a className="el" href="/content/api/cs/classkinetica_1_1AdminAddRanksRequest#a161e5f0cda6403d6d994245a095b246d">hosts</a> would be an array including 172.123.45.67 in the first two indices (signifying two ranks being added to host 172.123.45.67) and 172.123.45.68 in the last index (signifying one rank being added to host 172.123.45.67)</p>
      <p>\* <a className="el" href="/content/api/cs/classkinetica_1_1AdminAddRanksRequest#a514f72d071989dd84624f26de91db1e9">config\_params</a> would be an array of maps, with each map corresponding to the ranks being added in <a className="el" href="/content/api/cs/classkinetica_1_1AdminAddRanksRequest#a161e5f0cda6403d6d994245a095b246d">hosts</a>. The key of each map would be the configuration parameter name and the value would be the parameter's value, e.g. '{"{"}"rank.gpu":"1"{"}"}'</p>
      <p>This endpoint's processing includes copying all replicated table data to the new rank(s) and therefore could take a long time. The API call may time out if run directly. It is recommended to run this endpoint asynchronously via <a className="el" href="#ae37231de334eee413b2fdf5515890e53">createJob</a>.</p>
      <p>This method should be used for on-premise deployments only. </p>

      <div className="dl params">
        <div className="dt">Parameters</div>

        <div className="dd">
          <table className="params">
            <tr>
              <td className="paramname">request\_</td>
              <td>Request object containing the parameters for the operation.</td>
            </tr>

            <tr>
              <td className="paramname">cancellationToken</td>
              <td>Cancellation token to cancel the operation.</td>
            </tr>
          </table>
        </div>
      </div>

      <div className="dl section return">
        <div className="dt">Returns</div>
        <div className="dd">Task that returns the response object containing the result of the operation.</div>
      </div>

      <p className="definition">Definition at line <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/KineticaFunctions.cs#L353">353</a> of file <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/KineticaFunctions.cs">KineticaFunctions.cs</a>.</p>
    </div>
  </div>

  <div id="ae40ea2c1c8b119ecbde31d385bc6cc89" />

  <h2 className="memtitle"><span className="permalink"><a href="#ae40ea2c1c8b119ecbde31d385bc6cc89">◆ </a></span>AdminAddRanksAsync() <span className="overload">\[2/2]</span></h2>

  <div className="memitem">
    <div className="memproto">
      <table className="mlabels">
        <tr>
          <td className="mlabels-left">
            <table className="memname">
              <tr>
                <td className="memname">async System.Threading.Tasks.Task\< <a className="el" href="/content/api/cs/classkinetica_1_1AdminAddRanksResponse">AdminAddRanksResponse</a> > kinetica.Kinetica.AdminAddRanksAsync </td>
                <td>(</td>
                <td className="paramtype">IList\< string ></td>
                <td className="paramname"><span className="paramname"><span className="em">hosts</span></span>, </td>
              </tr>

              <tr>
                <td className="paramkey" />

                <td />

                <td className="paramtype">IList\< IDictionary\< string, string > ></td>
                <td className="paramname"><span className="paramname"><span className="em">config\_params</span></span>, </td>
              </tr>

              <tr>
                <td className="paramkey" />

                <td />

                <td className="paramtype">IDictionary\< string, string ></td>
                <td className="paramname"><span className="paramname"><span className="em">options</span></span><span className="paramdefsep"> = </span><span className="paramdefval">null</span>, </td>
              </tr>

              <tr>
                <td className="paramkey" />

                <td />

                <td className="paramtype">System.Threading.CancellationToken</td>
                <td className="paramname"><span className="paramname"><span className="em">cancellationToken</span></span><span className="paramdefsep"> = </span><span className="paramdefval">default</span> )</td>
              </tr>
            </table>
          </td>

          <td className="mlabels-right"> <span className="mlabels"><span className="mlabel inline">inline</span></span> </td>
        </tr>
      </table>
    </div>

    <div className="memdoc">
      <p>Add one or more ranks to an existing <a className="el" href="/content/api/cs/classkinetica_1_1Kinetica" title="API to talk to Kinetica Database.">Kinetica</a> cluster. </p>
      <p>(async)</p>
      <p>The new ranks will not contain any data initially (other than replicated tables) and will not be assigned any shards. To rebalance data and shards across the cluster, use <a className="el" href="#a95473307d777fc901751184765eb6089">adminRebalance</a>.</p>
      <p>The database must be offline for this operation, see <a className="el" href="#a882db0cc0becff6a6fa84423929e8bae">adminOffline</a></p>
      <p>For example, if attempting to add three new ranks (two ranks on host 172.123.45.67 and one rank on host 172.123.45.68) to a <a className="el" href="/content/api/cs/classkinetica_1_1Kinetica" title="API to talk to Kinetica Database.">Kinetica</a> cluster with additional configuration parameters:</p>
      <p>\* <span className="em">hosts</span> would be an array including 172.123.45.67 in the first two indices (signifying two ranks being added to host 172.123.45.67) and 172.123.45.68 in the last index (signifying one rank being added to host 172.123.45.67)</p>
      <p>\* <span className="em">config\_params</span> would be an array of maps, with each map corresponding to the ranks being added in <span className="em">hosts</span> . The key of each map would be the configuration parameter name and the value would be the parameter's value, e.g. '{"{"}"rank.gpu":"1"{"}"}'</p>
      <p>This endpoint's processing includes copying all replicated table data to the new rank(s) and therefore could take a long time. The API call may time out if run directly. It is recommended to run this endpoint asynchronously via <a className="el" href="#ae37231de334eee413b2fdf5515890e53">createJob</a>.</p>
      <p>This method should be used for on-premise deployments only. </p>

      <div className="dl params">
        <div className="dt">Parameters</div>

        <div className="dd">
          <table className="params">
            <tr>
              <td className="paramname">hosts</td>
              <td>Array of host IP addresses (matching a hostN.address from the gpudb.conf file), or host identifiers (e.g. 'host0' from the gpudb.conf file), on which to add ranks to the cluster. The hosts must already be in the cluster. If needed beforehand, to add a new host to the cluster use <a className="el" href="#a64c693befeaaa1d989cb5803ed90a16e">adminAddHost</a>. Include the same entry as many times as there are ranks to add to the cluster, e.g., if two ranks on host 172.123.45.67 should be added, <span className="em">hosts</span> could look like '\["172.123.45.67", "172.123.45.67"]'. All ranks will be added simultaneously, i.e. they're not added in the order of this array. Each entry in this array corresponds to the entry at the same index in the <span className="em">config\_params</span> .</td>
            </tr>

            <tr>
              <td className="paramname">config\_params</td>
              <td>Array of maps containing configuration parameters to apply to the new ranks found in <span className="em">hosts</span> . For example, '{"{"}"rank.gpu":"2", "tier.ram.rank.limit":"10000000000"{"}"}'. Currently, the available parameters are rank-specific parameters in the <a href="/content/config/#config-main-network" target="_top">Network</a>, <a href="/content/config/#config-main-hardware" target="_top">Hardware</a>, <a href="/content/config/#config-main-text-search" target="_top">Text Search</a>, and <a href="/content/config/#config-main-ram-tier" target="_top">RAM Tiered Storage</a> sections in the gpudb.conf file, with the key exception of the 'rankN.host' settings in the Network section that will be determined by <span className="em">hosts</span> instead. Though many of these configuration parameters typically are affixed with 'rankN' in the gpudb.conf file (where N is the rank number), the 'N' should be omitted in <span className="em">config\_params</span> as the new rank number(s) are not allocated until the ranks have been added to the cluster. Each entry in this array corresponds to the entry at the same index in the <span className="em">hosts</span> . This array must either be completely empty or have the same number of elements as the <span className="em">hosts</span> . An empty <span className="em">config\_params</span> array will result in the new ranks being set with default parameters.</td>
            </tr>

            <tr>
              <td className="paramname">options</td>

              <td>
                Optional parameters.

                <ul>
                  <li>
                    <a className="el" href="/content/api/cs/structkinetica_1_1AdminAddRanksRequest_1_1Options#a608db1d17aca3b921e5184e2ae8ba1fc">DRY\_RUN</a>: If <a className="el" href="/content/api/cs/structkinetica_1_1AdminAddRanksRequest_1_1Options#a258b0deb5644fe22a8472073fc9a7a49">TRUE</a>, only validation checks will be performed. No ranks are added. Supported values:

                    <ul>
                      <li> <a className="el" href="/content/api/cs/structkinetica_1_1AdminAddRanksRequest_1_1Options#a258b0deb5644fe22a8472073fc9a7a49">TRUE</a> </li>
                      <li> <a className="el" href="/content/api/cs/structkinetica_1_1AdminAddRanksRequest_1_1Options#a5fbc1d8a594b5c4b519ccc553144194f">FALSE</a> </li>
                    </ul>

                    The default value is <a className="el" href="/content/api/cs/structkinetica_1_1AdminAddRanksRequest_1_1Options#a5fbc1d8a594b5c4b519ccc553144194f">FALSE</a>.
                  </li>
                </ul>

                The default value is an empty Dictionary.
              </td>
            </tr>

            <tr>
              <td className="paramname">cancellationToken</td>
              <td>Cancellation token to cancel the operation.</td>
            </tr>
          </table>
        </div>
      </div>

      <div className="dl section return">
        <div className="dt">Returns</div>
        <div className="dd">Task that returns the response object containing the result of the operation.</div>
      </div>

      <p className="definition">Definition at line <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/KineticaFunctions.cs#L554">554</a> of file <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/KineticaFunctions.cs">KineticaFunctions.cs</a>.</p>
    </div>
  </div>
</div>
