Changing an IP Address in a Rolling Fashion (no downtime for reads)

This topic describes how to change the IP addresses for one or more hosts in a SingleStore cluster.

    Part 1 - Change the IP of leaf nodes one availability group at a time

  1. disable-nodes-autostart - Use this only if you need to restart the host to change the IP else skip this step.

  2. Shut down the node:

    If it is a leaf, first remove the leaf entry by running:

    REMOVE LEAF '<IP of OLD leaf>':<port> FORCE;
  3. Change the IP address.

  4. Unregister the old leaf from sdb-toolbox-config:

    sdb-toolbox-config unregister-host --host <old_ip_address_here>
  5. When you re-register the host under the new IP, by default it should automatically find the old nodes.hcl file (as it should be the same host, just with a new IP) andyou can skip this step as the nodes will already be registered. However, if you have lost a config file then you need to register the new leaf to sdb-toolbox-config:

    sdb-toolbox-config register-host --host <new_ip_address_here>
  6. Add the leaf node to the cluster:

    ADD LEAF user[:'password']@'<new_ip_address_here>':<node_port>;sdb-admin start-node --all
  7. Enable autorestart, if you had executed Step 1.

Part 2 - Change the IP of the Child Aggregator (one Child Aggregator at a time)

  1. disable-nodes-autostart - Use this only if you need to restart the host to change the IP else skip this step.

  2. Stop the child aggregator node.

  3. Remove the aggregator from the cluster:

    REMOVE AGGREGATOR 'host':port;
  4. Change the IP address of the host.

  5. Unregister the old host from sdb-toolbox-config:

    sdb-toolbox-config unregister-host --host <old_ip_address_here>
  6. Register the new host to sdb-toolbox-config:

    sdb-toolbox-config register-host --host <new_ip_address_here>
  7. Register the node to sdb-admin:

    sdb-admin register-node --memsql-config /path/to/memsql.cnf --host <new_ip_address_here>
  8. Start the node.

  9. Add the node as an aggregator to cluster:

    ADD AGGREGATOR user[:'password']@'<new_ip_address_here>':port;
  10. Enable autostart., if you had executed Step 1.

Part 3 - PROMOTE one of the Child Aggregators to Master Aggregator

To promote a child aggregator to master aggregator, execute:

PROMOTE AGGREGATOR '<host>':<port> TO MASTER;

Part 4 - Change the old Master Aggregator IP

See the steps in Part 2. The process is the same as removing a child aggregator as now the original MA is currently a CA since we promoted an existing CA to master.

Part 5 - PROMOTE the previous Master Aggregator back to a Master Aggregator, if needed

To promote the original master aggregator back to a master aggregator if needed, execute:

PROMOTE AGGREGATOR '<new_ip_of_original_MA>':<port> TO MASTER;

Last modified: August 10, 2023

Was this article helpful?