stringtranslate.com

Versión vectorial

Un vector de versión es un mecanismo para rastrear cambios en los datos en un sistema distribuido , donde múltiples agentes pueden actualizar los datos en diferentes momentos. El vector de versión permite a los participantes determinar si una actualización precedió a otra ( ocurrió antes ), la siguió o si las dos actualizaciones ocurrieron simultáneamente (y, por lo tanto, podrían entrar en conflicto entre sí). De esta manera, los vectores de versión permiten el seguimiento de la causalidad entre réplicas de datos y son un mecanismo básico para la replicación optimista . En términos matemáticos, el vector de versión genera un preorden que rastrea los eventos que preceden y, por lo tanto, pueden influir en las actualizaciones posteriores.

Los vectores de versión mantienen un estado idéntico al de un reloj vectorial , pero las reglas de actualización difieren ligeramente; en este ejemplo, las réplicas pueden experimentar actualizaciones locales (por ejemplo, el usuario edita un archivo en el nodo local) o pueden sincronizarse con otra réplica:

Los pares de réplicas, a , b , se pueden comparar inspeccionando sus vectores de versión y determinar si son: idénticos ( ), concurrentes ( ) u ordenados ( o ). La relación ordenada se define como: Vector si y solo si cada elemento de es menor o igual que su elemento correspondiente en , y al menos uno de los elementos es estrictamente menor que. Si ninguno o , pero los vectores no son idénticos, entonces los dos vectores deben ser concurrentes.

Los vectores de versión [1] o variantes se utilizan para rastrear actualizaciones en muchos sistemas de archivos distribuidos, como Coda (sistema de archivos) y Ficus, y son la principal estructura de datos detrás de la replicación optimista. [2]

Otros mecanismos

Referencias

  1. ^ Douglas Parker, Gerald Popek, Gerard Rudisin, Allen Stoughton, Bruce Walker, Evelyn Walton, Johanna Chow, David Edwards, Stephen Kiser y Charles Kline. Detección de inconsistencia mutua en sistemas distribuidos. Transactions on Software Engineering. 1983
  2. ^ David Ratner, Peter Reiher y Gerald Popek. Mantenimiento de vectores de versiones dinámicas. Informe técnico CSD-970022, Departamento de Ciencias de la Computación, Universidad de California, Los Ángeles, 1997
  3. ^ ByungHoon Kang, Robert Wilensky y John Kubiatowicz. El enfoque de la historia de hash para conciliar la inconsistencia mutua. ICDCS, págs. 670-677, IEEE Computer Society, 2003.
  4. ^ Dahlia Malkhi y Doug Terry. Versión concisa de Vectores en WinFS. Computación distribuida, vol. 20, 2007.
  5. ^ Paulo Almeida, Carlos Baquero y Victor Fonte. Version Stamps: Decentralized Version Vectors. ICDCS, pp. 544-551, 2002.
  6. ^ Paulo Almeida, Carlos Baquero y Victor Fonte. Relojes de árbol de intervalos. OPODIS, Lecture Notes in Computer Science, vol. 5401, págs. 259-274, Springer, 2008.
  7. ^ José Almeida, Paulo Almeida y Carlos Baquero. Vectores de versión limitada. DISC: Simposio Internacional sobre Computación Distribuida, LNCS, 2004.
  8. ^ Nuno Preguiça, Carlos Baquero, Paulo Almeida, Victor Fonte y Ricardo Gonçalves. Breve anuncio: Seguimiento eficiente de la causalidad en sistemas de almacenamiento distribuido con vectores de versión punteada. ACM PODC, págs. 335-336, 2012.

Enlaces externos