Saltar al contenido principal

Modelo de coordinación

Clustron Zaris proporciona primitivas que permiten a instancias de aplicación independientes coordinarse de forma segura a través de estado compartido. Este artículo explica el modelo detrás de los locks, contadores y watch — para qué sirven y por qué se comportan de forma predecible ante fallos — para que puedas decidir cuál necesita un problema dado.

La idea central​

La coordinación en Clustron Zaris se apoya en tres ideas que funcionan juntas:

estado compartido + propiedad controlada + recuperación automática

El almacén contiene el estado compartido, los leases dan una propiedad controlada y acotada en el tiempo, y la expiración proporciona recuperación automática cuando un propietario falla. Por eso las aplicaciones coordinadas se comportan de forma predecible incluso cuando un proceso se bloquea: la misma maquinaria que gestiona el ciclo de vida de los datos también gestiona quién es responsable de qué.

Las primitivas no son subsistemas separados atornillados junto a los datos. Están construidas sobre las capas que ya conoces:

Claves → TTL → Leases → Coordinación

Las claves almacenan el estado, el TTL gestiona su ciclo de vida, los leases gestionan la propiedad, y las primitivas de coordinación se construyen encima. Como comparten un único fundamento, se componen limpiamente y fallan de forma segura juntas.

Las tres primitivas​

Clustron Zaris te ofrece tres primitivas de coordinación, cada una respondiendo a una pregunta distinta: los locks responden "quién puede actuar", los contadores responden "cuántos", y watch responde "qué cambió".

Locks​

Un lock asegura que solo un cliente pueda actuar sobre un recurso a la vez. Usa uno cuando una sección crítica deba ejecutarse exactamente una vez en todo tu sistema — para evitar la ejecución duplicada de un trabajo, asegurar que un único worker procesa una tarea, o proteger un recurso compartido de modificaciones concurrentes.

Los locks te dan propiedad exclusiva y, como están respaldados por leases, son seguros ante fallos: si el propietario se bloquea, su lease expira y el lock se libera automáticamente. No hay limpieza manual ni riesgo de que un propietario muerto deje a todos los demás en un deadlock.

Contadores​

Un contador mantiene estado numérico compartido que muchos clientes actualizan a la vez. Usa uno para rastrear recuentos como el número de workers activos, para aplicar límites de tasa, o para recopilar métricas distribuidas.

Las actualizaciones de los contadores son atómicas y consistentes entre nodos, de modo que los incrementos y decrementos concurrentes no pierden actualizaciones y no necesitas ninguna sincronización manual a su alrededor. Esta es la forma segura de mantener un total acumulado al que contribuyen varias instancias — donde un read-modify-write simple sobre una clave correría el riesgo de perder actualizaciones.

Watch​

Watch permite a un cliente observar cambios en claves o prefijos de claves y reaccionar a medida que ocurren. Úsalo para responder a cambios de configuración, monitorizar transiciones de estado, o disparar flujos de trabajo en el momento en que los datos cambian.

Watch entrega notificaciones en tiempo real, funciona entre nodos distribuidos y elimina el sondeo: en lugar de comprobar los cambios repetidamente, se informa a tu aplicación de ellos. Esto convierte un sistema que pregunta "¿ha cambiado algo?" en uno que reacciona cuando algo cambia.

Por qué importa un único modelo​

Construidos sin un modelo unificado, los sistemas distribuidos tienden a acumular infraestructura separada — un sistema para el locking, otro para la mensajería, y pegamento escrito a mano para coordinarlos. Clustron Zaris integra todo ello en un único sistema con una API consistente, con la seguridad y la gestión del ciclo de vida ya incorporadas. Interactúas con los locks, contadores y watch de la misma forma en que interactúas con los datos, y heredan las mismas garantías.

Próximos pasos​