concepto · intermedio · 2 min de lectura
Lamport Clocks
Un Lamport clock es un contador lógico que permite establecer un orden parcial de eventos en un sistema distribuido sin necesidad de relojes físicos sincronizados.
No requiere conocimientos previos.
Alcance en breve
Cubre
- Lamport Clocks as a concept
No cubre
- implementation details
Supone
- The reader understands relevant fundamentals.
Resumen
Leslie Lamport propuso en 1978 un mecanismo simple para ordenar eventos en sistemas distribuidos: cada nodo mantiene un contador que incrementa con cada evento local, y cuando recibe un mensaje, ajusta su contador al máximo entre su valor actual y el del mensaje recibido, más uno.
El resultado es una relación happened-before: si A ocurrió antes que B, el timestamp de A es menor. Pero la inversa no siempre es cierta: timestamps iguales no implican orden. Para orden total, se agrega el ID del nodo como desempate. Lamport clocks son la base conceptual de los vector clocks y de algoritmos de consenso como Paxos.
Alcance y supuestos
Cubre Lamport clocks como mecanismo de ordenamiento lógico y su diferencia con vector clocks. Asume familiaridad con sistemas distribuidos.
Modelo mental
Una fila en la panadería con números. Cuando entrás, tomás un número. Si estás hablando por teléfono con alguien que ya está en la fila, ajustás tu número al de esa persona + 1. Los números no te dicen la hora exacta, pero sí quién llegó antes que quién.
Uso práctico
- ✅ Ordenamiento de eventos en logs distribuidos, bases de datos, sistemas de archivos.
- ❌ Detección de conflictos —ahí se usan vector clocks—.
Ejemplo trabajado: ordenar mensajes en un sistema de archivos distribuido
Tres clientes escriben archivos. Con Lamport clocks, el sistema puede ordenar las escrituras aunque los relojes físicos difieran. Si A escribe file.txt a las 10:00:01 y B lo modifica a las 10:00:00 (reloj atrasado), el Lamport clock corrige: A=5, B recibe A y ajusta a 6.
Evidencia
- El paper "Time, Clocks, and the Ordering of Events in a Distributed System" (Lamport, 1978) es uno de los más citados en ciencias de la computación.
Fuentes citadas
- Wikipedia, CAP theorem (Síntesis, 21-07-2026)