Skip to main content
If your system needs more resources, you can expand it by installing additional nodes and drives. The steps for expanding a system depend on the type of node you are adding. These sections explain the steps for adding each node type. Foundation Nodes include additional steps for adding more storage drives and rebalancing the system.
For information on how to replace nodes that have failed or are damaged, see Replace Nodes.For information on replacing drives that have failed or are damaged, see Replace an NVMe Node Drive.

Prerequisites

These prerequisites apply to adding any node type:
  • The process requires either the System Administrator role or the granted UPDATE privilege on SYSTEM.
  • Any new nodes should have the same OS kernel version as other nodes in the system.
  • Any new nodes should have the same Ocient System version as the other nodes. For details, see Ocient Application Installation.
  • Ensure that your system meets the requirements outlined in Ocient System Bootstrapping.
  • Before adding nodes, stop any query or loading process running on your system.

Add Foundation Nodes

A core component of an Ocient System, the Foundation Nodes store user data in Ocient and perform the bulk of query processing. By adding more Foundation Nodes, a system can support extra storage capacity as well as better performance for query processing. This process requires rebalancing the data to distribute the query processing across all available hardware, including newly installed disks or nodes. 

System Considerations

  • No individual cluster should have more than two petabytes of storage.
  • Each cluster should have the same number of Foundation Nodes.

Tutorial

1
Create the /var/opt/ocient/bootstrap.conf file on the new node using this YAML example. This YAML file should follow a similar format and parameters as the bootstrap.conf files on your other nodes.Replace the <FIRST_NODE_ADDRESS> with the IP or Hostname of a node running the Administrator Role on your system. If you are not using DNS, use nodeAddress instead of adminHost.Use a user account with System Administrator privileges for your system for the adminUserName and adminPassword.
YAML
2
Start the new node by using this command.
Shell
This process takes about a minute to complete. This step accepts the node into the system, but it has not been assigned a role or a storage cluster.
3
To validate that the node is on the system, execute this query using the sys.nodes system catalog table.
SQL
Output
SQL
The output shows the new node, named foundation_new in this example, listed as ACCEPTED in the status column.
4
Execute this ALTER CLUSTER SQL statement to add the new node to a storage cluster. In this example, replace storage_cluster_1 and foundation_new with your cluster name and node name, respectively.
SQL
This example adds only one new node. For information on adding multiple nodes, see ALTER CLUSTER ADD PARTICIPANTS.
5
Restart the rolehostd process on all nodes in the system by running the following series of commands at the shell terminal.First, stop the rolehostd process on all nodes.
Shell
Confirm that the rolehostd process is no longer running.
Shell
Start the rolehostd process on the system again.
Shell
6
You can verify the new node is active by executing this SQL query after you connect to the database.
SQL
7
Perform a rebalance task to distribute your data across your newly expanded system evenly. For details, see Rebalance System.

Add More Drives to Foundation Nodes

Foundation Nodes can support extra storage by adding additional NVMe drives. This tutorial shows the steps to integrate new drives into an existing Ocient System.

System Considerations

  • For best performance, all Foundation Nodes should have equal storage capacity.
  • No individual cluster should have more than two petabytes of storage.

Prerequisites

  • The process requires systemctl access on your system OS.
  • Any new NVMe drives added to the system must be blank and unpartitioned.

Tutorial

1
Shut down the rolehostd process from the shell prompt.
Shell
2
Install the new storage drives in your system.
3
Restart the node from the shell prompt.
Shell
The rolehostd process recognizes the new drive.
4
To confirm the new drives are active and running, you can connect to your system and query the sys.storage_device_status system catalog table.To use this example query, replace <NODE_NAME> with the name of the node where you are adding a drive.
SQL
Output
Text
This output lists the serial numbers of all drives in the foundation0 node, including their statuses.
5
Perform a rebalance task to distribute your data across your newly expanded system evenly. For details, see Rebalance System.

Rebalance System

REBALANCE task execution redistributes your data evenly across your segment groups and clusters. Rebalance your system if you have recently installed new hardware, particularly new nodes or drives.

System Considerations

Currently, the REBALANCE task does not move damaged segment groups. If you suspect that you might have a significant number of damaged segment groups, you can execute these steps to check and fix the groups:
  1. Ensure all nodes are online.
  2. Check whether you have damaged segment groups using the sys.segment_groups system catalog table. If damaged segment groups are present, execute a REBUILD task to rebuild the groups before rebalancing the system. For details, see Guide to Rebuilding Segments.
  3. Execute the REBALANCE task using this tutorial.
You can find information in the sys.degraded_segment_groups system catalog table to identify the damaged segment groups that need fixing. This table shows all segment groups with the DAMAGED or UNAVAILABLE state. You can also check the sys.storage_used system catalog table, which shows approximately the same number of used bytes used_bytes for each node entry with the same table after the rebalance execution.

Prerequisites

  • Only one rebalance task can execute at a time on the system. The system logs an error if you try to start a second rebalance task. 
  • You must have the System Administrator role, or be granted the UPDATE privilege on SYSTEM.

Tutorial

1
Execute a SELECT SQL statement to view how the system has distributed the existing data using the sys.tables and sys.nodes system catalog tables.
SQL
Output
Text
The query output shows how data is distributed across your nodes.
2
Execute the REBALANCE task named rebalance_task to reorganize all data in a balanced state using the CREATE TASK SQL statement.
SQL
For details about the syntax for creating tasks, see Distributed Tasks.
3
View the status of the tasks as the rebalance operation executes using the sys.subtasks system catalog table.
SQL
Output
Text
 The output shows when the REBALANCE task is finished.
When the REBALANCE task runs, segments are in the REBUILDING state. After the Ocient System completes this task, all segments should transition to the INTACT state.
4
Execute the query from Step 1 again to see how the system reorganized the data across nodes.
SQL
Output
Text
The output shows the redistributed data.
The REBALANCE task redistributes data across segment groups, so there can be some variance in data across nodes.

Add Loader Nodes

Adding more Loader Nodes to your system can improve the throughput of data loading and resiliency against loading failure. By having extra Loader Nodes, you can also dedicate sets of nodes for specific pipelines.

System Considerations

Before starting this process, ensure you meet the requirements in the Prerequisites section.

Tutorial

1
Stop any active data pipelines. Execute this SQL statement by replacing pipeline_name with the name of your data pipeline.
SQL
2
Create the /var/opt/ocient/bootstrap.conf file on the new Loader Node using this YAML example. This YAML file should follow a similar format and parameters to the bootstrap.conf file on your other nodes.Replace the <FIRST_NODE_ADDRESS> with the IP address or hostname of a node running the Administrator Role on your system. If you are not using a DNS, use nodeAddress instead of adminHost.Specify a user account with System Administrator privileges for your system for the username adminUserName and password adminPassword.
YAML
3
Start the new node by using this command.
Shell
This process takes about a minute to complete. This step accepts the node into the system, but does not assign a role.
4
Add the streamloader role to the new node.Execute this SQL statement by replacing <new_node_name> with the new node name.
SQL
5
Restart the rolehostd process on the replacement node by running this command at the shell terminal on the replacement node.
Shell
6
Restart the pipeline. Execute this SQL statement by replacing pipeline_name with the name of your data pipeline. Optionally, specify the Loader Node by name with the USING LOADERS keywords to prioritize it for this pipeline.
Shell
If you use the legacy LAT service, you must stop loading and copy the LAT configuration files to any new Loader Nodes. For details, see Configure the LAT Service.This step is unnecessary for systems that use Ocient data pipelines for loading.

Add SQL Nodes

Adding more SQL Nodes to your system can improve query optimization and processing, particularly for aggregation and join operations. Extra SQL Nodes also provide system resiliency, especially when assigned the admin role.

System Considerations

Before starting this process, ensure you meet the requirements in the Prerequisites section.

Tutorial

1
Create the /var/opt/ocient/bootstrap.conf file on the new SQL Node using this YAML example. This YAML file should follow a similar format and parameters to the bootstrap.conf file on your other nodes.Replace the <FIRST_NODE_ADDRESS> with the IP address or hostname of a node running the Administrator Role on your system. If you are not using a DNS, use nodeAddress instead of adminHost.Specify a user account with System Administrator privileges for your system for the username adminUserName and password adminPassword.
YAML
2
Start the new node by using this command.
Shell
This process takes about a minute to complete. This step accepts the node into the system, but does not assign a role.
3
Add the sql role to the new node.Execute this SQL statement by replacing <new_node_name>with the new node name.
SQL
4
Optionally, you can also assign the admin role to the SQL Node. At least one SQL Node must always fulfill this role. By default, the system assigns the admin role to the first SQL Node in the system.For details about the admin role, see Node Configuration with the Administrator Role.Execute this SQL statement by replacing <new_node_name> with the name of your new node.
SQL
5
Restart the rolehostd process on the replacement node by running this command at the shell terminal on the replacement node.
Shell
6
Assign the new SQL Node to a connectivity pool with the ALTER CONNECTIVITY_POOL statement.In this example, the statement assigns the SQL Node sql2 to the connectivity pool cp1 with the IP address 111.1.1.1 and port number 4050 for listening. Specify the local IP address and port number 4050 to return to the client.
SQL
Replace Nodes Replace an NVMe Node Drive System Catalog
Last modified on May 20, 2026