Monotonic Writes (kurz MW) ist die vierte Session-Garantie aus der Arbeit „Session Guarantees for Weakly Consistent Replicated Data“ von Douglas Terry und Kollegen (PDIS 1994). Sie sichert die Schreibseite einer Sitzung ab: Die Schreibvorgänge einer Session wirken überall in genau der Reihenfolge, in der die Session sie ausgeführt hat.

Was garantiert MW?

Formal angewendet eine Replika einen Write einer Session erst, nachdem sie alle früheren Writes derselben Session angewendet hat. Anders ausgedrückt: Schickt eine Session zuerst Write A und dann Write B, so wendet das System A vor B an — ein verspätet eintreffendes A kann B niemals überschreiben.

Das Problem ist real: In replizierten Systemen können Schreibvorgänge über unterschiedliche Replikationspfade wandern, etwa über verschiedene Repliken oder verzögerte Verbindungen. Ohne MW könnte ein „alter“ Write nach einem „neueren“ ankommen und den Zustand zurückdrehen. Solche Out-of-Order-Mutationen sind eine häufige Quelle kaskadierender Folgefehler, weil nachfolgende Writes auf einem Zustand aufbauen, der inzwischen überschrieben wurde.

Wie wird MW umgesetzt?

  • Sequenznummern je Session: Eine logische Uhr (z. B. Lamport-Uhr oder Hybrid Logical Clock) nummeriert die Writes einer Sitzung fortlaufend.
  • Zurückhalten: Eine Replika hält einen Write zurück, bis alle Vorgänger dieser Session angewendet sind — sie sortiert die Writes vor dem Anwenden.
  • Verwerfen: Bereits verarbeitete oder überholte ältere Writes werden verworfen statt erneut angewendet.
  • Verbreitung: Die Reihenfolgeinformation wandert mit den Updates über den Replikationspfad — häufig über Gossip-Protokolle oder direkte Replikationsströme.

In der Praxis verbinden Systeme MW oft mit dem Quorum-Prinzip: Schreibquoren mit W > N/2 stellen sicher, dass die Reihenfolgeinformation auf einer stabilen Mehrheit landet, bevor sie bestätigt wird.

Einordnung

MW ist das symmetrische Gegenstück zu Monotonic Reads: Dort bewegt sich die gesehene Sicht nur vorwärts, hier bewegt sich der geschriebene Zustand nur vorwärts. Zusammen mit Writes Follow Reads, Read Your Writes und den anderen Session-Garantien ergibt sich ein vollständiger Katalog für die Absicherung schwach konsistenter Systeme (siehe auch Eventual Consistency und das CAP-Theorem). MongoDB implementiert MW im Rahmen seiner causally consistent sessions über die Operation Time.