stringtranslate.com

Reloj vectorial

Un reloj vectorial es una estructura de datos que se utiliza para determinar el orden parcial de los eventos en un sistema distribuido y detectar violaciones de causalidad . Al igual que en las marcas de tiempo de Lamport , los mensajes entre procesos contienen el estado del reloj lógico del proceso que lo envía . Un reloj vectorial de un sistema de N procesos es una matriz /vector de N relojes lógicos, un reloj por proceso; en cada proceso se conserva una copia local de la matriz de relojes global con los "valores más grandes posibles".

Denotado como el reloj vectorial mantenido por el proceso , las actualizaciones del reloj proceden de la siguiente manera: [1]

Ejemplo de un sistema de relojes vectoriales. Los eventos en la región azul son las causas que conducen al evento B4, mientras que los de la región roja son los efectos del evento B4.

Historia

Lamport originó la idea de los relojes lógicos de Lamport en 1978. [2] Sin embargo, los relojes lógicos en ese artículo eran escalares, no vectores. La generalización al tiempo vectorial fue desarrollada varias veces, aparentemente de forma independiente, por diferentes autores a principios de la década de 1980. [3] Al menos 6 artículos contienen el concepto. [4] Los artículos citados canónicamente en referencia a los relojes vectoriales son los trabajos de Colin Fidge y Friedemann Mattern de 1988, [5] [6] ya que establecieron (de forma independiente) el nombre de "reloj vectorial" y las propiedades matemáticas de los relojes vectoriales. [3]

Propiedad de ordenación parcial

Los relojes vectoriales permiten la ordenación causal parcial de los eventos. Definiendo lo siguiente:

Propiedades:

Relación con otras órdenes:

Otros mecanismos

Véase también

Referencias

  1. ^ "Sistemas distribuidos 3.ª edición (2017)". DISTRIBUTED-SYSTEMS.NET . Consultado el 21 de marzo de 2021 .
  2. ^ Lamport, L. (1978). "Tiempo, relojes y ordenación de eventos en un sistema distribuido" (PDF) . Comunicaciones de la ACM . 21 (7): 558–565. doi :10.1145/359545.359563. S2CID  215822405.
  3. ^ ab Schwarz, Reinhard; Mattern, Friedemann (marzo de 1994). "Detección de relaciones causales en cálculos distribuidos: En busca del santo grial". Computación distribuida . 7 (3): 149–174. doi :10.1007/BF02277859. S2CID  3065996.
  4. ^ Kuper, Lindsey (8 de abril de 2023). "¿Quién inventó los relojes vectoriales?". descomposición ∘ al .Los artículos son (en orden cronológico):
    • Fischer, Michael J.; Michael, Alan (1982). "Sacrificar la serialización para lograr una alta disponibilidad de datos en una red no confiable". Actas del 1er simposio ACM SIGACT-SIGMOD sobre Principios de sistemas de bases de datos - PODS '82 . p. 70. doi :10.1145/588111.588124. ISBN 0897910702.S2CID8774876  .​
    • Parker, DS; Popek, GJ; Rudisin, G.; Stoughton, A.; Walker, BJ; Walton, E.; Chow, JM; Edwards, D.; Kiser, S.; Kline, C. (mayo de 1983). "Detección de inconsistencia mutua en sistemas distribuidos". IEEE Transactions on Software Engineering . SE-9 (3): 240–247. doi :10.1109/TSE.1983.236733. S2CID  2483222.
    • Wuu, Gene TJ; Bernstein, Arthur J. (1984). "Soluciones eficientes para los problemas de registro y diccionario replicados". Actas del tercer simposio anual de la ACM sobre Principios de computación distribuida - PODC '84 . págs. 233–242. doi :10.1145/800222.806750. ISBN 0897911431. Número de identificación del sujeto  2384672.
    • Strom, Rob; Yemini, Shaula (agosto de 1985). "Recuperación optimista en sistemas distribuidos". ACM Transactions on Computer Systems . 3 (3): 204–226. doi : 10.1145/3959.3962 . S2CID  1941122.
    • Schmuck, Frank B. (noviembre de 1985). Relojes de software y orden de eventos en un sistema distribuido (inédito).
    • Liskov, Barbara; Ladin, Rivka (1986). "Servicios distribuidos de alta disponibilidad y recolección de basura distribuida con tolerancia a fallos". Actas del quinto simposio anual de la ACM sobre Principios de computación distribuida - PODC '86 . págs. 29–39. doi :10.1145/10590.10593. ISBN 0897911989.S2CID16148617  .​
    • Raynal, Michel (febrero de 1987). "Un algoritmo distribuido para evitar la deriva mutua entre n relojes lógicos". Information Processing Letters . 24 (3): 199–202. doi :10.1016/0020-0190(87)90186-4.
  5. ^ Fidge, Colin J. (febrero de 1988). "Marcas de tiempo en sistemas de paso de mensajes que preservan el ordenamiento parcial" (PDF) . En K. Raymond (ed.). Actas de la 11.ª Conferencia Australiana de Ciencias de la Computación (ACSC'88) . Vol. 10. págs. 56–66 . Consultado el 13 de febrero de 2009 .
  6. ^ Mattern, Friedemann (octubre de 1988). "Tiempo virtual y estados globales de sistemas distribuidos". En Cosnard, M. (ed.). Proc. Taller sobre algoritmos paralelos y distribuidos . Chateau de Bonas, Francia: Elsevier. pp. 215–226.
  7. ^ Francisco Torres-Rojas; Mustaque Ahamad (1999), "Relojes plausibles: relojes lógicos de tamaño constante para sistemas distribuidos", Distributed Computing , 12 (4): 179–195, doi :10.1007/s004460050065, S2CID  2936350
  8. ^ Agarwal, Anurag; Garg, Vijay K. (17 de julio de 2005). "Seguimiento eficiente de dependencias para eventos relevantes en sistemas de memoria compartida" (PDF) . Actas del vigésimo cuarto simposio anual de la ACM sobre Principios de computación distribuida . Association for Computing Machinery. págs. 19–28. doi :10.1145/1073814.1073818. ISBN . 1-58113-994-2. S2CID  11779779 . Consultado el 21 de abril de 2021 .
  9. ^ Almeida, Paulo; Baquero, Carlos; Fonte, Victor (2008), "Relojes de árbol de intervalos: un reloj lógico para sistemas dinámicos", en Baker, Theodore P.; Bui, Alain; Tixeuil, Sébastien (eds.), Principles of Distributed Systems (PDF) , Apuntes de clase en informática, vol. 5401, Springer-Verlag, Apuntes de clase en informática, pp. 259–274, Bibcode :2008LNCS.5401.....B, doi :10.1007/978-3-540-92221-6, ISBN 978-3-540-92220-9
  10. ^ Almeida, Paulo; Baquero, Carlos; Fonte, Victor (2008), "Relojes de árbol de intervalos: un reloj lógico para sistemas dinámicos", Relojes de árbol de intervalos: un reloj lógico para sistemas dinámicos, Lecture Notes in Computer Science, vol. 5401, p. 259, doi :10.1007/978-3-540-92221-6_18, hdl : 1822/37748 , ISBN 978-3-540-92220-9
  11. ^ Zhang, Yi (2014), "Antecedentes preliminares: resultados del reloj de árbol de intervalos", Antecedentes preliminares: resultados del reloj de árbol de intervalos (PDF)
  12. ^ Pozzetti, Tommaso; Kshemkalyani, Ajay D. (1 de abril de 2021). "Reloj vectorial codificado reiniciable para análisis de causalidad con una aplicación a la detección dinámica de carreras". IEEE Transactions on Parallel and Distributed Systems . 32 (4): 772–785. doi : 10.1109/TPDS.2020.3032293 . S2CID  220362525.
  13. ^ Lum Ramabaja (2019), El reloj Bloom , arXiv : 1905.13064 , Bibcode :2019arXiv190513064R
  14. ^ Kulkarni, Sandeep S; Appleton, Gabe; Nguyen, Duong (4 de enero de 2022). "Lograr la causalidad con relojes físicos". Actas de la 23.ª Conferencia internacional sobre computación distribuida y redes . págs. 97–106. arXiv : 2104.15099 . doi :10.1145/3491003.3491009. ISBN . 9781450395601.S2CID233476293  .​

Enlaces externos