Reloj vectorial
El reloj vectorial es un algoritmo para obtener una ordenación parcial de eventos en un sistema distribuido y detectar violaciones de las relaciones de causa y efecto ( reloj lógico ).
De la misma forma que en los sellos de tiempo de Lamport , los mensajes internos enviados en el sistema contienen el estado del reloj lógico del proceso . Un reloj vectorial en un sistema de proceso es una matriz o vector de relojes lógicos, un reloj por proceso. Una instancia local del vector con los valores de reloj más pequeños posibles para cada proceso se construye de la siguiente manera:
- inicialmente todos los valores de reloj son 0;
- en caso de un evento interno, el contador del proceso actual se incrementa en 1;
- antes de enviar un mensaje, el contador interno correspondiente al proceso actual se incrementa en 1, y el vector se adjunta por completo al mensaje;
- cuando se recibe un mensaje, el contador del proceso actual aumenta en 1, luego los valores en el vector actual se establecen al máximo de los actuales y recibidos.
Los relojes vectoriales fueron desarrollados de forma independiente por Fidge y Mattern en 1988 [1] .
Un reloj vectorial lógico es una función de un conjunto ordenado de eventos en un vector de números enteros.
Notas
- ↑ Colin J. Fidge (febrero de 1988). "Marcas de tiempo en sistemas de paso de mensajes que conservan el orden parcial" (PDF) . En K. Raymond (Ed.). proc. de la 11ª Conferencia Australiana de Ciencias de la Computación (ACSC'88) . páginas. 56-66. Archivado desde el original (PDF) el 15 de septiembre de 2009 . Consultado el 13 de febrero de 2009 .
Archivado el 15 de septiembre de 2009 en Wayback Machine .
Literatura