Tupelraum

Definition - Was bedeutet Tupelraum?

Ein Tupelraum ist eine Ausführung des assoziativen Speichermodells für verteiltes / paralleles Rechnen. Es bietet eine Bibliothek von Tupeln, auf die gleichzeitig zugegriffen werden kann. Tupel sind Begriffe mit null oder mehr Argumenten und einem Schlüssel.

Die Sammlung von Tupeln unterstützt einige grundlegende Operationen, z. B. das Hinzufügen eines Tupels zum Leerzeichen (Schreiben) und das Entfernen eines Tupels aus dem Leerzeichen (Nehmen). Die Tupel-Sammlung wird über ein Netzwerk von mehreren Tupel-Space-Servern verwaltet. Mehrere Threads auf einzelnen oder unterschiedlichen Computern greifen gleichzeitig auf den Speicherplatz zu. Einige fügen dem Raum Tupel hinzu, während andere sie in einem Prozess entfernen, der als Tafelmetapher bezeichnet werden kann.

Technische.me erklärt Tuple Space

Tupelräume sind die Theorie, auf der die Linda-Sprache basiert. Tupelraumimplementierungen werden auch für Java (JavaSpaces), Lua, Lisp, Python, Prolog, Ruby, .NET, Smalltalk und Tcl entwickelt.

Die Tupelraumabstraktion ist eine effektive Wahl für die Kapselung in einem Modul. Es stellt eine nützliche Struktur mit einer genau definierten Schnittstelle dar. Daher kann es wiederverwendet und modularisiert werden.

Einige der grundlegenden Operationen, die vom Tupelbereich unterstützt werden, lauten wie folgt:

  • Schreiben (Tupel): Wird verwendet, um dem Leerzeichen ein Tupel hinzuzufügen
  • take (Vorlagentupel): Wird verwendet, um eine assoziative Suche nach einem Tupel auszuführen, das der Vorlage entspricht. Einmal gefunden, wird das Tupel aus dem Leerzeichen gelöscht und dann zurückgebracht.
  • waitToTake (Vorlagentupel): Wird verwendet, um eine assoziative Suche nach einem Tupel durchzuführen, das der Vorlage entspricht. Es wird blockiert, bis eine Übereinstimmung gefunden wird. Anschließend wird das passende Tupel aus dem Feld entfernt und zurückgebracht.
  • read (Template-Tupel): Wie oben beschrieben "take", mit der Ausnahme, dass das Tupel nicht aus dem Tupelbereich entfernt wird
  • waitToRead (Vorlagentupel): Wie oben beschrieben "waitToTake", mit der Ausnahme, dass das Tupel nicht aus dem Tupelbereich entfernt wird
  • Scan (Vorlagentupel): Entspricht dem oben erläuterten "Lesen", mit der Ausnahme, dass eine vollständige Sammlung übereinstimmender Tupel zurückgegeben wird
  • count (Template-Tupel): Entspricht dem oben erläuterten "Scan", mit der Ausnahme, dass anstelle der Sammlung von Tupeln selbst eine Anzahl übereinstimmender Tupel zurückgegeben wird.

Einige Beispiele für Tupelraum-Implementierungen sind unter anderem Apache River, das Blitz-Projekt, der Fly Object Space, GigaSpaces und Linda in einer mobilen Umgebung (LIME).