Connectivity Pool Behavior
A connectivity pool groups one or more SQL Nodes together and provides clients with the network information needed to connect. A connectivity pool serves three purposes:- Defines listen endpoints — Each participant node in the pool specifies the address and port where it accepts connections for both the SQL wire protocol and the HTTP Query API.
- Advertises connection information — Each participant can advertise a different address and port than it listens on, which is essential when clients connect through Network Address Translation (NAT) or load balancers.
- Enables automatic client redirection — The system can automatically redirect JDBC and pyocient clients connecting to any node in a pool to the least busy node within the same pool. This redirection provides client-side load balancing without external infrastructure.
The HTTP Query API (OpenAPI) does not support automatic redirection because cross-origin request restrictions make it impractical. Use DNS round-robin or an external load balancer for OpenAPI load distribution.
Connectivity pools do not support dynamic IP addresses. If the IP address of your SQL Node changes, you must manually update it by using an ALTER CONNECTIVITY_POOL ALTER PARTICIPANT SQL statement.
Default Behavior
The Ocient System creates a single shared connectivity pool namedsystem during bootstrap. All SQL Nodes automatically join this pool as participants. When you add a new SQL Node to the cluster, the system automatically adds it to the system pool.
This default behavior enables automatic client redirection between all SQL Nodes, which is the chosen behavior for most deployments. You do not need any additional configuration.
Pool Selection Behavior
When a client connects to a SQL Node, the system determines which connectivity pool to use through the following process:- The system identifies all pools that have a participant listening on the connected address and port.
- The system filters pools by
SOURCE_ADDRESS, matching the source IP address of the client against the CIDR range of each pool. - If a pool specifies the
SOURCE_PORTvalue, the connection port must also match. - Among all matching pools, the system selects the pool with the highest
PRIORITYvalue. - The system associates the client with that pool. For JDBC and pyocient connections, redirection uses the
ADVERTISED_ADDRESSandADVERTISED_PORTvalues of nodes within the selected pool.
Initial Configuration
For most deployments, the defaultsystem pool provides the correct behavior without additional configuration.
To customize your initial connectivity pool configuration, use the CREATE CONNECTIVITY_POOL statement or specify the configuration in the bootstrap.conf file. For details about the bootstrap.conf file, see Node Bootstrapping Reference.
Expand the Network of an Ocient System
The system adds new SQL Nodes to thesystem pool. No manual steps are required.
If you use custom connectivity pools instead of the default system pool, you can add new SQL Nodes to an existing pool using the ALTER CONNECTIVITY_POOL ADD PARTICIPANTS statement.
Change the Network Configuration of an Ocient System
You can configure IP addresses that the Ocient System uses to connect to the external client or to other nodes in the system. Configure IP addresses for external client connections using the ALTER CONNECTIVITY_POOL SQL statement. Configure IP addresses for connections with other nodes in the system using the ALTER NODE SET ADDRESS SQL statement. The system automatically adds new SQL Nodes to thesystem pool. If you use custom connectivity pools, you might need to configure the pools using the CONNECTIVITY_POOL SQL statements after adding a new SQL Node or adding a SQL role using the ALTER NODE ADD ROLE SQL statement.
Common Deployment Scenarios
These scenarios illustrate common connectivity pool configurations for different network topologies and workload requirements. Each scenario includes the SQL statements needed to create and configure the pools.Single Pool With All Nodes
This deployment is the simplest and most common. All SQL Nodes share one connectivity pool, and you can redirect clients connecting to any node to the least busy node. This behavior is the default with thesystem pool. You do not need any additional configuration. You can verify the configuration by querying the system catalog.
SQL
SQL
NAT: Internal and External Networks
When clients access SQL Nodes through a NAT gateway, the internal and external addresses differ. Create two connectivity pools: one for internal clients and one for external clients.SQL
- Internal clients (source IP in
10.0.0.0/8) matchinternal_pool(priority 2) and connect on port 4050. Redirection uses the internal hostnames. - External clients (any other source IP) match
external_pool(priority 1) and connect on port 4051. Redirection uses the external hostnames. - Both pools listen on
0.0.0.0, so connections arrive on any interface. The pool selection depends on the source address of the client and the priority of the pool.
Workload Isolation
Dedicate different SQL Nodes to different workloads or tenants by placing them in separate pools. The system redirects clients connecting to a node in one pool to other nodes in the same pool.SQL
sql0 or sql1 and the system redirects only within the analytics_pool pool. Ingest clients connect to sql2 or sql3 and the system redirects only within the ingest_pool pool. The two workloads do not interfere with each other.
Connectivity Pool Troubleshooting
If a connectivity pool misconfiguration prevents client connections, you can enable a fallback listener by adding this configuration to therolehostd.conf file. This configuration causes all SQL Nodes to listen on 0.0.0.0:4050 regardless of the connectivity pool settings, allowing you to connect and correct the pool configuration.
Text
rolehostd process after you add this configuration.
Shell

