Espacio de tupla

Definición - ¿Qué significa Tuple Space?

Un espacio de tupla es una ejecución del modelo de memoria asociativa para computación distribuida / paralela. Ofrece una biblioteca de tuplas, a las que se puede acceder simultáneamente. Las tuplas son términos con cero o más argumentos y una clave.

La colección de tuplas admite algunas operaciones básicas, como agregar una tupla al espacio (escribir) y eliminar una tupla del espacio (tomar). La colección de tuplas se mantiene y administra a través de una red de múltiples servidores de espacio de tuplas. Varios subprocesos en máquinas individuales o distintas acceden simultáneamente al espacio. Algunos agregan tuplas al espacio, mientras que otros las eliminan en un proceso que puede ser referido como una metáfora de pizarra.

Techinfo explica Tuple Space

Los espacios de tupla son la teoría en la que se basa el lenguaje de Linda. También se desarrollan implementaciones de espacio de tuplas para Java (JavaSpaces), Lua, Lisp, Python, Prolog, Ruby, .NET, Smalltalk y Tcl.

La abstracción del espacio de tuplas es una opción eficaz para la encapsulación en un módulo. Constituye una estructura útil con una interfaz bien definida. Por lo tanto, se puede reutilizar y modular.

Algunas de las operaciones básicas admitidas por el espacio de tuplas son las siguientes:

  • escribir (tupla): se usa para agregar una tupla al espacio
  • take (template tuple): se utiliza para ejecutar una búsqueda asociativa de una tupla que coincide con la plantilla. Una vez encontrada, la tupla se elimina del espacio y luego se recupera.
  • waitToTake (tupla de plantilla): se utiliza para realizar una búsqueda asociativa de una tupla que coincide con la plantilla. Bloquea hasta que se localiza una cerilla. Luego elimina y recupera la tupla coincidente del espacio.
  • read (template tuple): Igual que "tomar" explicado anteriormente, con la excepción de que la tupla no se eliminará del espacio de tupla
  • waitToRead (tupla de plantilla): Igual que "waitToTake" explicado anteriormente, con la excepción de que la tupla no se eliminará del espacio de tupla
  • escanear (tupla de plantilla): Igual que "leer" explicado anteriormente, con la excepción de que devuelve una colección completa de tuplas que coinciden
  • count (tupla de plantilla): Igual que "escanear", explicado anteriormente, con la excepción de que devuelve un recuento de tuplas coincidentes en lugar de la colección de tuplas en sí.

Algunos ejemplos de implementaciones de espacios de tuplas incluyen Apache River, Blitz Project, Fly Object Space, GigaSpaces y Linda in a Mobile Environment (LIME), entre otros.