Problem der Transaktions Sichtbarkeit in PostgreSQL Multi-AZ Clustern: Ein tiefer Einblick in den Jepsen Bericht
Ein aktueller Jepsen-Bericht hebt ein langjähriges Problem der Transaktionssichtbarkeit in Amazon RDS für PostgreSQL Multi-AZ-Cluster hervor: Die Reihenfolge, in der Transaktionen sichtbar werden, unterscheidet sich zwischen dem Primär- und den Replikaservern. Dies führt nicht zu Datenverlust oder -beschädigung und betrifft weder Single-AZ-Deployments noch Aurora-Datenbanken. Das Problem hängt mit der "Long Fork"-Anomalie zusammen, die die Snapshot-Isolation verletzt. Der Beitrag beschreibt die Ursache (asynchrone Aktualisierungen von ProcArray und WAL) und veranschaulicht, wie dies zu inkonsistenten Ergebnissen führt (z. B. Alice und Bob beobachten unterschiedliche Rankings eines Hacker-News-Artikels). Obwohl dies die Anwendungsrichtigkeit selten beeinträchtigt, ist die Behebung für Enterprise-Funktionen von PostgreSQL-Clustern entscheidend. AWS arbeitet mit der PostgreSQL-Community zusammen, um dies zu beheben und bietet Workarounds wie die Überprüfung der Annahmen der Anwendung bezüglich der Transaktionsreihenfolge und die Verwendung expliziter Synchronisationsmechanismen.