← Lumbre

Sistemas Distribuidos · 6.º Relojes, orden y causalidad

← Volver a todos los contenidos
Portada de Relojes, orden y causalidad

Relojes, orden y causalidad

✦ En una máquina hay un reloj; en un sistema distribuido hay miles que se desfasan · Sistemas Distribuidos · Ingeniería de Datos · en menos de 5 minutos

Roadwise Consulting

Firmado y verificado · Fernando Castro

Objetivo: Explicar por qué el orden global de eventos es difícil en sistemas distribuidos y cómo la causalidad y los relojes lógicos sustituyen a un tiempo común fiable.

5 min 18–30 años
Autoevaluación
Más
Relojes, orden y causalidad

Herramientas de la lección

◉ Entrar a La Matrix Sorpréndeme

Sobre este contenido

Ir a

Volver a Objetos Cursos Explorar Mi cuenta Salir del modo estudio

Relojes, orden y causalidad

Relojes lógicos en sistemas distribuidos
Vídeo en español que explica cómo ordenar eventos sin fiarse del reloj físico.

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.
Tres relojes en nodos separados marcan horas ligeramente distintas unidos por líneas onduladas; debajo, dos puntos de evento enlazados por una flecha sólida y un tercer punto queda suelto, sin conexión.
El reloj físico diverge entre nodos; el orden fiable llega de la causalidad, no del cuarzo.

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:

  1. Registrar en cada evento su reloj vectorial, con el contador propio y los de los nodos conocidos.
  2. Comparar los vectores de las dos ediciones para ver si uno precede causalmente al otro.
  3. Si ningún vector domina, declarar los eventos concurrentes en vez de inventar un orden.
  4. Aplicar la regla acordada para concurrentes, que puede ser fusionar o pedir elección.
  5. 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

Reloj lógico que da orden total coherente
lamport
Estructura que captura causalidad y detecta concurrencia
vectorial
Dos eventos sin relación causal son...
concurrentes
Reloj que sincroniza contadores al enviar mensajes es...
logico
La divergencia del cuarzo entre nodos se llama...
deriva

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.

Une cada instrumento con lo que permite.

      El tiempo físico miente

      • Orden distribuido
        • Problema
          • sin reloj común
            • la deriva engaña
            • Lamport
              • orden total
                • no ve causalidad fina
                • Vectorial
                  • registra quién vio qué
                    • detecta concurrencia
                    • Uso
                      • replicar y resolver
                        • evitar divergencia

                      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.

                      Las respuestas y tu progreso se guardan sólo en este dispositivo. Contenido firmado por su autoría mediante Lumbre.

                      Autoevaluación

                      Comprueba lo que aprendiste

                      2 preguntas · ves cada respuesta al momento · el resultado queda guardado en tu historial

                      Iniciar autoevaluación
                      Más sobre esta lección

                      ¿Necesitas ayuda?

                      Vamos a atacar justo la parte que no te cuadra

                      Explicaciones cortas, dibujos, ejemplos y práctica. Nada cuenta como nota.

                      Rutas vivas

                      ¿Y ahora qué? Elige el camino por lo que necesitas

                      No es un listado al azar: cada camino responde una pregunta distinta y te dice por qué.

                      Para profundizar

                      ✦ Explorar el universo completo
                      Explora temas relacionados

                      Conceptos

                      Comentarios

                      Inicia sesión para comentar.

                      Todavía no hay comentarios. Sé la primera persona en opinar.