concepto · intermedio · 2 min de lectura
Vector Clocks
Un vector clock es un mecanismo para rastrear causalidad entre eventos en un sistema distribuido, permitiendo detectar cuándo dos actualizaciones son concurrentes y necesitan resolución.
No requiere conocimientos previos.
Alcance en breve
Cubre
- Vector Clocks as a concept
No cubre
- implementation details
Supone
- The reader understands relevant fundamentals.
Resumen
En un sistema distribuido, el tiempo físico no alcanza para ordenar eventos: los relojes de las máquinas no están perfectamente sincronizados. Un vector clock asigna a cada evento un vector de contadores —uno por nodo— que permite determinar si un evento ocurrió antes, después o concurrentemente con otro.
Si el vector de A domina al de B, A pasó después. Si ninguno domina al otro, son concurrentes —un conflicto que la aplicación debe resolver—. Dynamo y Riak usan vector clocks para detectar conflictos entre réplicas que recibieron escrituras mientras estaban desconectadas.
Alcance y supuestos
Cubre vector clocks, su diferencia con Lamport clocks y su uso en resolución de conflictos. Asume familiaridad con sistemas distribuidos.
Modelo mental
Un grupo de editores trabajando en un mismo documento de Google Docs sin conexión. Cuando se reconectan, el sistema necesita saber: ¿el cambio de Ana ocurrió antes que el de Bruno, o editaron en paralelo? El vector clock da la respuesta.
Uso práctico
- ✅ Detección de conflictos, bases de datos multi-primary, CRDTs.
- ❌ Sistemas donde el orden total basta —Lamport clocks son más simples—.
Ejemplo trabajado: conflicto en DynamoDB
Dos réplicas reciben escrituras concurrentes mientras están particionadas: réplica 1 pone color: blue, réplica 2 pone color: red. Cuando se reconcilian, los vector clocks muestran que son concurrentes. DynamoDB aplica last-write-wins con timestamp, pero con vector clocks la aplicación podría detectar el conflicto y mergear.
Evidencia
- Amazon Dynamo popularizó los vector clocks. Riak los usa como mecanismo central de consistencia eventual.
Fuentes citadas
- Wikipedia, CAP theorem (Síntesis, 21-07-2026)