Summary

The setMinHostAlivePercentageToEnableClusterRebalancing() mutation configures the minimum percentage of cluster hosts that must be alive before LogScale executes automatic rebalancing operations. Rebalancing redistributes digest assignments and moves data segments across nodes to normalize storage distribution. Setting a higher threshold prevents rebalancing when many nodes are unavailable. This protects surviving nodes from additional load during degraded cluster states. Setting a lower threshold permits rebalancing sooner, at the cost of higher risk during partial outages.

Syntax

graphql
setMinHostAlivePercentageToEnableClusterRebalancing(
      minHostAlivePercentageToEnableClusterRebalancing: Int!
   ): Int!

The required minHostAlivePercentageToEnableClusterRebalancing argument accepts a non-null integer from 0 to 100, inclusive. A value of 100 requires all cluster hosts to be alive before rebalancing starts. A value of 0 permits rebalancing regardless of cluster health. The mutation returns the updated threshold as a non-null integer.

Example

Raw
graphql
mutation {
  setMinHostAlivePercentageToEnableClusterRebalancing( 
       minHostAlivePercentageToEnableClusterRebalancing: 50
  )
}
Mac OS or Linux (curl)
shell
curl -v -X POST $YOUR_LOGSCALE_URL/graphql \
    -H "Authorization: Bearer $TOKEN" \
    -H "Content-Type: application/json" \
    -d @- << EOF
{"query" : "mutation {
  setMinHostAlivePercentageToEnableClusterRebalancing( 
       minHostAlivePercentageToEnableClusterRebalancing: 50
  )
}"
}
EOF
Mac OS or Linux (curl) One-line
shell
curl -v -X POST $YOUR_LOGSCALE_URL/graphql \
    -H "Authorization: Bearer $TOKEN" \
    -H "Content-Type: application/json" \
    -d @- << EOF
{"query" : "mutation {
  setMinHostAlivePercentageToEnableClusterRebalancing( 
       minHostAlivePercentageToEnableClusterRebalancing: 50
  )
}"
}
EOF
Windows Cmd and curl
shell
curl -v -X POST $YOUR_LOGSCALE_URL/graphql ^
    -H "Authorization: Bearer $TOKEN" ^
    -H "Content-Type: application/json" ^
    -d @'{"query" : "mutation { ^
  setMinHostAlivePercentageToEnableClusterRebalancing(  ^
       minHostAlivePercentageToEnableClusterRebalancing: 50 ^
  ) ^
}" ^
} '
Windows Powershell and curl
powershell
curl.exe -X POST 
    -H "Authorization: Bearer $TOKEN"
    -H "Content-Type: application/json"
    -d '{"query" : "mutation {
  setMinHostAlivePercentageToEnableClusterRebalancing( 
       minHostAlivePercentageToEnableClusterRebalancing: 50
  )
}"
}'
    "$YOUR_LOGSCALE_URL/graphql"
Perl
perl
#!/usr/bin/perl

use HTTP::Request;
use LWP;

my $TOKEN = "TOKEN";

my $uri = '$YOUR_LOGSCALE_URL/graphql';

my $query = "mutation {
  setMinHostAlivePercentageToEnableClusterRebalancing( 
       minHostAlivePercentageToEnableClusterRebalancing: 50
  )
}";
$query =~ s/\n/ /g;
my $json = sprintf('{"query" : "%s"}',$query);
my $req = HTTP::Request->new("POST", $uri );

$req->header("Authorization" => "Bearer $TOKEN");
$req->header("Content-Type" => "application/json");

$req->content( $json );

my $lwp = LWP::UserAgent->new;

my $result = $lwp->request( $req );

print $result->{"_content"},"\n";
Python
python
#! /usr/local/bin/python3

import requests

url = '$YOUR_LOGSCALE_URL/graphql'
mydata = r'''{"query" : "mutation {
  setMinHostAlivePercentageToEnableClusterRebalancing( 
       minHostAlivePercentageToEnableClusterRebalancing: 50
  )
}"
}'''

resp = requests.post(url,
                     data = mydata,
                     headers = {
   "Authorization" : "Bearer $TOKEN",
   "Content-Type" : "application/json"
}
)

print(resp.text)
Node.js
javascript
const https = require('https');

const data = JSON.stringify(
    {"query" : "mutation {
  setMinHostAlivePercentageToEnableClusterRebalancing( 
       minHostAlivePercentageToEnableClusterRebalancing: 50
  )
}"
}
);


const options = {
  hostname: '$YOUR_LOGSCALE_URL',
  path: 'graphql',
  port: 443,
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Content-Length': data.length,
    Authorization: 'BEARER ' + process.env.TOKEN,
    'User-Agent': 'Node',
  },
};

const req = https.request(options, (res) => {
  let data = '';
  console.log(`statusCode: ${res.statusCode}`);

  res.on('data', (d) => {
    data += d;
  });
  res.on('end', () => {
    console.log(JSON.parse(data).data);
  });
});

req.on('error', (error) => {
  console.error(error);
});

req.write(data);
req.end();
Example Responses
Success (HTTP Response Code 200 OK)
json
{
  "data": {
    "setMinHostAlivePercentageToEnableClusterRebalancing": 50
  }
}

Returned Values

The mutation returns a non-null Int. The returned value reflects the updated threshold: the minimum percentage of cluster hosts that must be alive before LogScale permits automatic rebalancing.

Input Parameters

Provide the minimum percentage of cluster hosts that must be alive before LogScale executes automatic rebalancing. The value must be between 0 and 100, inclusive.

Table: Input Parameters & Datatypes

Parameter Type Required Default Description
This table contains all input parameters for this mutation.
minHostAlivePercentageToEnableClusterRebalancing Int! yes ย  Accepts an integer from 0 to 100, inclusive. A value of 100 requires all hosts to be alive before rebalancing starts. A value of 0 permits rebalancing regardless of host availability.