Saltar al contenido principal

Nodo

Un nodo es un único proceso de almacén en ejecución. Un clúster está formado por nodos, cada uno ocupando una ranura de partición-réplica, y cada uno escuchando en un puerto de cliente y un puerto de clúster.

Qué es un nodo​

Un nodo es un proceso que participa en el clúster de un almacén. Contiene una porción de los datos, sirve operaciones clave-valor y de coordinación para las particiones que posee, replica esas particiones a sus pares, y participa en la detección de fallos. Los nodos se presentan a los clientes como un único almacén lógico: no enrutas solicitudes a un nodo específico por tu cuenta — te conectas a cualquier nodo y el clúster resuelve el propietario.

Ejecutas uno o varios nodos por máquina. El número de procesos de nodo que una máquina ejecuta para un almacén es particiones por nodo × factor de replicación, de modo que una sola máquina puede alojar varios nodos y hacer de sustituto de un clúster multimáquina durante el desarrollo.

Identidad del nodo​

Cada nodo tiene un identificador a nivel de clúster calculado como <host>-n<index> — el host o dirección de la máquina, luego -n, luego el índice de proceso en esa máquina empezando en 0. Por ejemplo, los dos primeros nodos en 192.168.1.1 son 192.168.1.1-n0 y 192.168.1.1-n1. Todos los nodos en la misma máquina comparten un identificador de máquina, que el clúster usa para colocar las réplicas en máquinas distintas de su primario.

El índice de proceso también determina el rol inicial del nodo. Un nodo cuyo índice es múltiplo del factor de replicación es un primario preferente — el candidato a poseer una partición cuando se genera el primer mapa de particiones; los índices intermedios son réplicas para esa ranura. Esto es una preferencia de colocación en el momento de la generación del mapa, no una garantía en tiempo de ejecución.

Los dos puertos​

Un nodo escucha en dos puertos, uno para los clientes y uno para los demás nodos.

PuertoPropósito
Puerto de cliente (desde 7861)Donde tu aplicación se conecta para leer y escribir. Se incrementa por nodo en una máquina: 7861, 7862, y así sucesivamente.
Puerto de clúster (desde 7811)Tráfico nodo a nodo: gossip de pertenencia y replicación. Se incrementa por nodo: 7811, 7812, y así sucesivamente.

Mantener los dos puertos separados significa que el tráfico de aplicación y el tráfico intra-clúster nunca compiten en el mismo canal. Los puertos base se establecen cuando se crea el almacén y se incrementan por cada proceso de nodo en cada máquina.

El nodo frente a los términos que los lectores confunden con él​

Un nodo es un proceso, lo que lo distingue de la máquina en la que se ejecuta y de los datos que contiene.

  • Un nodo no es un servidor. Un servidor es la máquina; un nodo es un proceso que ese servidor ejecuta. Un servidor normalmente ejecuta varios nodos.
  • Un nodo no es una partición. Una partición es una porción del keyspace; un nodo es un proceso que contiene particiones — como primario para unas y como réplica para otras.
  • Un nodo no es el clúster. El clúster son todos los nodos juntos; un nodo es un miembro de él.
nota

Como un nodo se corresponde con una ranura de partición-réplica, hacer crecer un almacén significa levantar más nodos — algo que en modo supervisor se hace añadiendo un servidor completo, que bifurca su parte de procesos de nodo.

Próximos pasos​