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
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
Start the new node by using this command.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.
Shell
To validate that the node is on the system, execute this query using the OutputThe output shows the new node, named
sys.nodes system catalog table.SQL
SQL
foundation_new in this example, listed as ACCEPTED in the status column.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.
Restart the Confirm that the Start 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
rolehostd process is no longer running.Shell
rolehostd process on the system again.Shell
You can verify the new node is active by executing this SQL query after you connect to the database.
SQL
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
systemctlaccess on your system OS. - Any new NVMe drives added to the system must be blank and unpartitioned.
Tutorial
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 OutputThis output lists the serial numbers of all drives in the
<NODE_NAME> with the name of the node where you are adding a drive.SQL
Text
foundation0 node, including their statuses.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, theREBALANCE 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:
- Ensure all nodes are online.
- Check whether you have damaged segment groups using the
sys.segment_groupssystem catalog table. If damaged segment groups are present, execute aREBUILDtask to rebuild the groups before rebalancing the system. For details, see Guide to Rebuilding Segments. - Execute the
REBALANCEtask using this tutorial.
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
Execute a OutputThe query output shows how data is distributed across your nodes.
SELECT SQL statement to view how the system has distributed the existing data using the sys.tables and sys.nodes system catalog tables.SQL
Text
Execute the For details about the syntax for creating tasks, see Distributed Tasks.
REBALANCE task named rebalance_task to reorganize all data in a balanced state using the CREATE TASK SQL statement.SQL
View the status of the tasks as the rebalance operation executes using the Output The output shows when the
sys.subtasks system catalog table.SQL
Text
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.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
Stop any active data pipelines. Execute this SQL statement by replacing
pipeline_name with the name of your data pipeline.SQL
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
Start the new node by using this command.This process takes about a minute to complete. This step accepts the node into the system, but does not assign a role.
Shell
Add the
streamloader role to the new node.Execute this SQL statement by replacing <new_node_name> with the new node name.SQL
Restart the
rolehostd process on the replacement node by running this command at the shell terminal on the replacement node.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 theadmin role.
System Considerations
Before starting this process, ensure you meet the requirements in the Prerequisites section.Tutorial
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
Start the new node by using this command.This process takes about a minute to complete. This step accepts the node into the system, but does not assign a role.
Shell
Add the
sql role to the new node.Execute this SQL statement by replacing <new_node_name>with the new node name.SQL
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
Restart the
rolehostd process on the replacement node by running this command at the shell terminal on the replacement node.Shell
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

