Relojes, orden y causalidad
El problema del orden
En un solo nodo, el orden es el del reloj. Entre nodos sin reloj común, dos eventos pueden parecer simultáneos u ordenarse mal, y eso rompe invariantes como «si retiro antes de comprar, la compra falla».
Relojes físicos y su deriva
Los relojes de máquina corren a ritmos ligeramente distintos y se desfasan. Protocolos como NTP los acercan, pero nunca lo bastante para resolver empates finos: la deriva y el retardo dejan margen de error.
Relojes de Lamport
Un reloj lógico asigna a cada evento un número que crece localmente y se sincroniza al mensaje. Da un orden total coherente, pero no captura causalidad fina: dos eventos sin relación pueden ordenarse al azar.
Causalidad frente a tiempo
- Si A pudo causar B, decimos que A ocurrió «antes» con sentido físico.
- Los relojes vectoriales registran qué nodo vio qué, capturando causalidad y detectando concurrencia.
- Dos eventos no relacionados son concurrentes: ninguno influyó en el otro.

Relojes vectoriales
Cada nodo lleva un vector con su contador y los que conoce de otros. Comparando vectores se decide si un evento precede causalmente a otro o son concurrentes, sin depender del reloj físico.
Por qué importa
Replicar, resolver conflictos y garantizar consistencia dependen de saber el orden real. Sin un modelo de orden, dos réplicas pueden aplicar cambios en distinto orden y divergir para siempre.
Tiempo físico con cota
Para casos que exigen tiempo físico, se usan marcas de tiempo con cota de error o relojes atómicos; pero el trabajo fino del orden suele recaer en estructuras lógicas que no dependen del cuarzo.
Errores frecuentes
- Fiarse del reloj de cuarzo para empates finos y aceptar órdenes imposibles entre nodos.
- Usar solo Lamport y creer que captura causalidad, cuando ordena al azar lo concurrente.
- Confundir concurrencia con conflicto: dos cambios sin relación causal no siempre contradicen.
Ejemplo resuelto: dos ediciones simultáneas de un documento
Dos usuarios editan el mismo archivo sin verse y el sistema debe decidir qué pasó antes. El análisis:
- Registrar en cada evento su reloj vectorial, con el contador propio y los de los nodos conocidos.
- Comparar los vectores de las dos ediciones para ver si uno precede causalmente al otro.
- Si ningún vector domina, declarar los eventos concurrentes en vez de inventar un orden.
- Aplicar la regla acordada para concurrentes, que puede ser fusionar o pedir elección.
- Nunca justificar la decisión por la hora del servidor, que puede estar desfasada.
¿Para qué sirve en la realidad?
Colaboración en tiempo real, carritos de compra y cualquier réplica multiusuario dependen de saber qué cambió antes. Sin modelo de orden, dos réplicas aplican lo mismo en distinto orden y divergen para siempre.
Dos eventos en nodos distintos, sin que ninguno haya recibido información del otro, se consideran:
Un reloj físico perfectamente sincronizado elimina todo problema de orden en sistemas distribuidos.
Orden
Toca una tarjeta para ver la respuesta.
Ordena el razonamiento para establecer el orden entre dos eventos remotos:
Arrastra cada ficha a su categoría (o tócala y luego toca la categoría). También puedes usar el teclado.
Relojes de LamportCómo los relojes lógicos ordenan eventos sin depender del tiempo físico.
Une cada instrumento con lo que permite.
El tiempo físico miente
- Orden distribuido
- Problema
- sin reloj común
- sin reloj común
- la deriva engaña
- Problema
- orden total
- registra quién vio qué
- replicar y resolver
Relojes vectorialesDefinición y propiedades de los relojes que capturan la relación «ha pasado antes que».
Dos usuarios editan el mismo documento sin verse. ¿Son los cambios concurrentes o ordenables? Sin reloj físico fiable, ¿qué necesitas para decidir qué edición gana?
Tu texto se guarda sólo en este dispositivo.
Comentarios
Inicia sesión para comentar.
Todavía no hay comentarios. Sé la primera persona en opinar.