Creating Subclusters
By default, new Eon Mode databases contain a single primary subcluster named default_subcluster. This subcluster contains all of the nodes that are part of your database when you create it. You will often want to create subclusters to separate and manage workloads. You have three options to create new subclusters in your database:
- Use the admintools command line to add a new subcluster from nodes in your database cluster
- Use admintools to create a duplicate of an existing subcluster
- Use the Management Console to provision and create a new subcluster
Create a Subcluster Using admintools
To create a new subcluster, use the admintools db_add_subcluster
tool:
$ admintools -t db_add_subcluster -h Usage: db_add_subcluster [options] Options: -h, --help show this help message and exit -d DB, --database=DB Name of database to be modified -s HOSTS, --hosts=HOSTS Comma separated list of hosts to add to the subcluster -p DBPASSWORD, --password=DBPASSWORD Database password in single quotes -c SCNAME, --subcluster=SCNAME Name of the new subcluster for the new node --is-secondary Create secondary subcluster --control-set-size=CONTROLSETSIZE Set the number of nodes that will run spread within the subcluster --like=CLONESUBCLUSTER Name of an existing subcluster from which to clone properties for the new subcluster --timeout=NONINTERACTIVE_TIMEOUT set a timeout (in seconds) to wait for actions to complete ('never') will wait forever (implicitly sets -i) -i, --noprompts do not stop and wait for user input(default false). Setting this implies a timeout of 20 min.
The simplest command adds an empty subcluster. It requires the database name, password, and name for the new subcluster. This example adds a subcluster named analytics_cluster to the database named verticadb:
$ adminTools -t db_add_subcluster -d verticadb -p 'password' -c analytics_cluster Creating new subcluster 'analytics_cluster' Subcluster added to verticadb successfully.
By default, Vertica makes a new subclusters a primary subcluster. You can have it create a secondary subcluster by supplying the --is-secondary
argument.
Adding Nodes While Creating a Subcluster
You can also specify one or more nodes for Vertica to add to the subcluster while creating it. These nodes must be part of the cluster but not already part of the database. For example, nodes that you have added to the cluster using the MC or admintools, or nodes you have dropped from the database. This example creates analytics_cluster as a secondary subcluster and adds three nodes to it.
$ adminTools -t db_add_subcluster -c analytics_cluster \ -d verticadb -p 'password' -s 10.11.12.117,10.11.12.251,10.11.12.193 \ --is-secondary Creating new subcluster 'analytics_cluster' New subcluster is Secondary Adding new hosts to 'analytics_cluster' Verifying database connectivity...10.11.12.10 Eon database detected, creating new depot locations for newly added nodes Creating depots for each node Eon database detected, creating new depot locations for newly added nodes Creating depots for each node Eon database detected, creating new depot locations for newly added nodes Creating depots for each node Generating new configuration information and reloading spread Replicating configuration to all nodes Starting nodes Starting nodes: v_verticadb_node0004 (10.11.12.117) v_verticadb_node0005 (10.11.12.251) v_verticadb_node0006 (10.11.12.193) Starting Vertica on all nodes. Please wait, databases with a large catalog may take a while to initialize. Checking database state Node Status: v_verticadb_node0004: (DOWN) v_verticadb_node0005: (DOWN) v_verticadb_node0006: (DOWN) Node Status: v_verticadb_node0004: (DOWN) v_verticadb_node0005: (DOWN) v_verticadb_node0006: (DOWN) Node Status: v_verticadb_node0004: (DOWN) v_verticadb_node0005: (DOWN) v_verticadb_node0006: (DOWN) Node Status: v_verticadb_node0004: (DOWN) v_verticadb_node0005: (DOWN) v_verticadb_node0006: (DOWN) Node Status: v_verticadb_node0004: (UP) v_verticadb_node0005: (UP) v_verticadb_node0006: (UP) Communal storage detected: syncing catalog Multi-node DB add completed Nodes added to subcluster analytics_cluster successfully. Subcluster added to verticadb successfully.
Your newly-added nodes do not have any subscriptions to shards. See Updating Shard Subscriptions After Adding Nodes for more information.
Subclusters and Large Cluster
Vertica has a feature named large cluster that helps manage broadcast messages as the database cluster grows. It has several impacts on adding new subclusters:
- If you create a new subcluster with 16 or more nodes, Vertica automatically enables the large cluster feature. It sets the number of control nodes to the square root of the number of nodes in your subcluster. See Planning a Large Cluster.
- You can set the number of control nodes in a subcluster by using the
--control-set-size
option in the admintools command line. - If your database cluster has 120 control nodes, Vertica returns an error if you try to add a new subcluster. Every subcluster must have at least one control node. Your database cannot have more than 120 control nodes. When your database reaches this limit, you must reduce the number of control nodes in other subclusters before you can add a new subcluster. See Changing the Number of Control Nodes and Realigning for more information.
- If you attempt to create a subcluster with a number of control nodes that would exceed the 120 control node limit, Vertica warns you and creates the subcluster with fewer control nodes. It adds as many control nodes as it can to the subcluster, which is 120 minus the current count of control nodes in the cluster. For example, suppose you create a 16-node subcluster in a database cluster that already has 118 control nodes. In this case, Vertica warns you and creates your subcluster with just 2 control nodes rather than the default 4.
See Large Cluster for more information about the large cluster feature.