PostgreSQL: Updates für alle supporteten Versionen

Mit der Veröffentlichung von PostgreSQL 11.2, 10.7, 9.6.12, 9.5.16 und 9.4.21 haben die Macher der Datenbank allen derzeit verfügbaren Versionen mit laufender Unterstützung ein Update spendiert. Zu den übergreifenden Neuerungen zählt der Umgang mit der Kernel-Funktion fsync().

Laut der Ankündigung haben sich die Entwickler eines Problems mit fsnc() angenommen, das eine mögliche Ursache für korrumpierte Daten darstellt. PostgreSQL verwendet fsync(), um Daten auf eine Disk zu schreiben, und tut dies bei unterstützten Betriebssystemen standardmäßig. Bei manchen Betriebssystemen komme es zu einer Fehlermeldung, wenn der Kernel die Daten nicht schreiben könne und die Daten werden aus dem Speicher geleert. Versuche PostgreSQL später erneut über fsync() die Daten auf Disk zu schreiben, komme es zu einem unglücklichen Nebeneffekt, weil fsnc() dann melde, dass die Operation erfolgreich war, obwohl die Daten gar nicht geschrieben wurden.

Mit dem Update modifizieren die Entwickler das Verhalten von PostgreSQL im Umgang mit Fehlern fsync(). Statt fsync() nach einer Fehlermeldung erneut aufzurufen, löse PostgreSQL eine Panik aus. In dem Fall sei es dann möglich, dass PostgreSQL die Daten aus dem Write-Ahead-Log (WAL) holen und sicherstellen, dass sie geschrieben werden. Die Entwoickler geben zwar zu dass sich dieser Umweg nicht optimal anhöre, es gäbe aber ansonsten auch wenige Alternativen und der Fehler komme laut den Bugreports extrem selten vor.

Neben dem beschriebenen Problem haben die Entwickler rund 70 weitere Bugs behoben, die in ihrer zahl nach den jeweiligen Versionen variieren.

E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben