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.