Skip to content

Servicio de reloj vectorial de tamaño n. De utilidad en sincronizacion de procesos distribuidos, para obtener el orden de cualquier par arbitrario de sucesos.

poximan/mom-reloj-vect

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Reloj Vectorial

Servicio de reloj vectorial de tamaño n para una arquitectura mom (message-oriented middleware). De utilidad en sincronizacion de procesos distribuidos, para obtener el orden de cualquier par arbitrario de sucesos.

Caso de estudio

Aqui https://github.com/poximan/mama_node hay caso de estudio completo que implementa este modulo.

Configuracion inicial

En propiedades.json debe especificarse cuantos procesos del sistema necesitaran una instancia de reloj.

Parametros

param 1 = indice del que es responsable el reloj vectorial.

Modo de uso

Alta reloj

var reloj_vectorial = require("mom-reloj-vect")(param 1);

Se requiere el servicio de reloj vectorial. El proceso consumidor pide por parametros que se reserve una posicion del arreglo vector. El modulo de reloj vectorial reservara esa posicion para el que la solicite. En caso de conflicto de posiciones, el Reloj notificara con "Reloj vectorial: otro proceso modifico mi reloj".

Incrementar reloj

reloj_vectorial.incrementar();

Ante un evento que requiera el incremento del valor del reloj, se usara esta funcion. El indice a incrementar es conocido de antemano (durante require).

Pedir el Reloj

reloj_vectorial.vector();

Devuelve el reloj vectorial completo para operaciones de visualizacion a terceros.

Pedir indice

reloj_vectorial.indice();

Devuelve el indice reservado para el proceso solicitante.

Actualizar estado

reloj_vectorial.actualizarVector(nuevo_vector);
  • Sobreescribe con nuevo_vector si posicion != posicion reservada a proceso solicitante.
  • No sobreescribe el vector si posicion == posicion reservada a proceso solicitante. Si nuevo_vector tiene un valor mayor devuelve falla, pero no interrumpe el proceso.

About

Servicio de reloj vectorial de tamaño n. De utilidad en sincronizacion de procesos distribuidos, para obtener el orden de cualquier par arbitrario de sucesos.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published