Vector Clock es un algoritmo que genera una ordenación parcial de eventos y detecta violaciones de causalidad en un sistema distribuido. Estos relojes se expanden en el tiempo escalar para facilitar una vista causalmente consistente del sistema distribuido, detectan si un evento contribuido ha causado otro evento en el sistema distribuido. Esencialmente captura todas las relaciones causales. Este algoritmo nos ayuda a etiquetar cada proceso con un vector (una lista de números enteros) con un número entero para cada reloj local de cada proceso dentro del sistema. Entonces, para N procesos dados, habrá un vector/arreglo de tamaño N.
¿Cómo funciona el algoritmo del reloj vectorial?
- Inicialmente, todos los relojes se ponen a cero.
- Cada vez que ocurre un evento Interno en un proceso, el valor del reloj lógico del proceso en el vector se incrementa en 1
- Además, cada vez que un proceso envía un mensaje, el valor del reloj lógico del proceso en el vector se incrementa en 1.
Cada vez que un proceso recibe un mensaje, el valor del reloj lógico del proceso en el vector se incrementa en 1, y además, cada elemento se actualiza tomando el máximo del valor en su propio vector reloj y el valor en el vector en el mensaje recibido (para cada elemento).
Ejemplo:
Considere un proceso (P) con un tamaño de vector N para cada proceso: el conjunto de reglas mencionado anteriormente debe ser ejecutado por el reloj vectorial:
El ejemplo anterior muestra el mecanismo de relojes vectoriales en el que los relojes vectoriales se actualizan después de la ejecución de eventos internos, las flechas indican cómo se envían los valores de los vectores entre los procesos (P1, P2, P3).
En resumen, los algoritmos de relojes vectoriales se utilizan en sistemas distribuidos para proporcionar un orden de eventos causalmente consistente , pero el Vector completo se envía a cada proceso por cada mensaje enviado, para mantener los relojes vectoriales sincronizados.
Publicación traducida automáticamente
Artículo escrito por kondalalith1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA