Database Monsters of the World Connect! Virtual Conference | January 12-14
Register Now

Scylla Seed Nodes

Topic: Scylla Seed Nodes Overview

Learn: What a seed node is, and how they should be used in a Scylla Cluster

Audience: Scylla Administrators

What is the Function of a Seed Node in Scylla?

A Scylla seed node is a regular Scylla node with two extra roles:

  • It allows nodes to discover the cluster ring topology on startup (when joining the cluster). This means that any time a node is joining the cluster, it needs to learn the cluster ring topology, meaning: - What the IPs of the nodes in the cluster are - Which token ranges are available - Which nodes will own which tokens when a new node joins the cluster

  • It assists with gossip convergence. See also the gossip wiki entry. Gossiping with other nodes ensures that any update to the cluster is propagated across the cluster. This includes detecting and alerting whenever a node goes down, comes back, or is removed from the cluster.

Tips for Creating Scylla Seed Nodes

  • The first node in a new cluster needs to be a seed node.

  • Ensure that all nodes in the cluster have the same seed nodes listed in each node’s scylla.yaml.

  • To maintain resiliency of the cluster, it is recommended to have more than one seed node in the cluster.

  • If you have more than one seed in a DC with multiple racks (or availability zones), make sure to put your seeds in different racks.

  • You must have at least one node that is not a seed node. You cannot create a cluster where all nodes are seed nodes.

  • You should have more than one seed node.

How Many Seed Nodes Do I Need?

Use the following guidelines:

  • If your DC has more than 6 nodes in it, you need 3 seed nodes per DC.

  • If your DC has less than 6 nodes in it, you need 2 seed nodes per DC.

Can I Change the Seed Node?

Any node which has joined the cluster can be promoted to become a seed node at any time (as long as its status in nodetool is UN). The procedure is the same as Replacing a dead seed node, except that you do not need to replace a node.

Do Seed Nodes Auto Bootstrap?

No, seeds do not auto bootstrap. If you want a node to do that, bootstrap it first and then promote it to be a seed later.

Example

Assume you have a cluster of six nodes. The IP addresses of the cluster are:

  • 192.168.1.201

  • 192.168.1.202

  • 192.168.1.203

  • 192.168.1.204

  • 192.168.1.205

  • 192.168.1.206

Based on one DC in the sizing definition above, you can have 2 seed nodes. The first node should be a seed plus one more. You would assign the seed nodes in each node’s scylla.yaml file by adding the following IP addresses:

seeds: "192.168.1.201,192.168.1.203"