PRAM steht für Pipelined Random Access Memory; die PRAM-Konsistenz (auch FIFO-Konsistenz) ist ein schwaches Konsistenzmodell für parallele und verteilte Systeme. Richard Lipton und Jeffrey Sandberg stellten es 1988 in dem Aufsatz „PRAM: A Scalable Shared Memory“ vor — es gehört zu den ersten formal beschriebenen Konsistenzmodellen.

Die Grundregel

PRAM-Konsistenz verlangt nur eine einzige Bedingung: Alle Prozesse sehen die Schreiboperationen eines Prozesses in genau der Reihenfolge, in der dieser Prozess sie ausgeführt hat. Die Writes eines Prozesses werden wie in einer Pipeline (FIFO) über das System transportiert — daher der Alternativname.

Was PRAM-Konsistenz nicht verlangt: eine gemeinsame Ordnung über die Writes verschiedener Prozesse. Prozess A darf die Writes der Prozesse B und C in anderer Reihenfolge sehen als Prozess D — Hauptsache, die pro-Prozess-FIFO-Reihenfolge bleibt überall erhalten.

Einordnung im Spektrum

  • Schwächer als Sequential Consistency: PRAM besitzt keinen globalen Konsistenzpunkt; jeder Prozess sieht seine eigene, FIFO-konsistente Zeitlinie.
  • Schwächer als Kausale Konsistenz: Kausalität verknüpft auch Operationen verschiedener Prozesse; PRAM ordnet nur die Writes des jeweils eigenen Prozesses.
  • Stärker als Weak Consistency und Eventual Consistency: Die FIFO-Reihenfolge gilt sofort und überall, während schwache Modelle beliebige Verzögerungen erlauben.

In der Taxonomie von Viotti und Vukolić („Consistency in Non-Transactional Distributed Storage Systems“, ACM Computing Surveys 2016) steht PRAM zwischen den kausalen Modellen und den Session-Garantien.

Verwandtschaft zu Session-Garantien

PRAM ähnelt der Kombination von Read-Your-Writes und Monotonic Writes: Auch dort gilt die eigene Schreibreihenfolge strikt, allerdings nur innerhalb einer Sitzung. PRAM-Konsistenz verallgemeinert dieses Prinzip auf den gesamten Prozess.

Praxis

PRAM entstand im Umfeld des Distributed Shared Memory (DSM), bei dem mehrere Rechner einen gemeinsamen virtuellen Speicher bereitstellen. Die FIFO-Eigenschaft lässt sich mit Pipelining über das Netzwerk effizient umsetzen — daher der Name. Auch Datenbank-Isolationsebenen erinnern an PRAM: Bei der Snapshot Isolation sieht jede Transaktion ihren eigenen konsistenten Stand, ohne dass eine globale Ordnung erzwungen wird. Grundlagen zu Modellen und Herausforderungen liefert der Artikel Verteilte Systeme; die Abwägung mit Verfügbarkeit erklärt das CAP-Theorem.