PostgreSQL 10 ist fertig: Teile und herrsche

Die wesentlichen Neuerungen an der Open-Source-Datenbank sind logische Replikation und Erweiterungen der parallelen Queries. Außerdem hat sich das Team den Themen Sicherheit und Zuverlässigkeit gewidmet.

In Pocket speichern vorlesen Druckansicht 26 Kommentare lesen
PostgreSQL 10 ist fertig
Lesezeit: 3 Min.

Nach einer fünfmonatigen Betaphase und lediglich einem Ende September veröffentlichten Release Candidate ist PostgreSQL 10 nun offensichtlich stabil genug für den Release-Status. Ein wichtiger Aspekt bei der Entwicklung war die optimierte Verteilung der Daten auf unterschiedliche Knoten, um schnellen Zugriff, Verwaltung und Analyse zu gewährleisten. Dabei geht es um die effiziente Aufteilung und geeignete Algorithmen nach der Strategie "Teile und Herrsche" (Divide and Conquer).

Dazu trägt unter anderem die sogenannte logische Replikation (Logical Replication) bei, die ein Publish-Subscribe-Modell verwendet, statt die Daten wie bei der physischen Replikation Byte-weise zu übertragen. Ein Publisher-Knoten verteilt die geänderten Daten, die ein oder mehrere Subsciber Nodes übernehmen. Auch eine kaskadierende Replikation ist möglich: In dem Fall werden die Empfänger ihrerseits zu Publishern.

Mit der logischen Replikation sollen sich inkrementelle Änderungen besser übertragen lassen, und das System verschickt Änderungen zum Zeitpunkt ihres Auftretens. Auch die Interoperabilität unterschiedlicher PostgreSQL-Versionen lässt sich gut umsetzen, da die logische im Gegensatz zur physischen Replikation unabhängig vom Speicherformat funktioniert.

PostgreSQL führt zudem Quorom Commit für synchrone Replikation ein, um den Empfang der Erfolgsbestätigung von Remote Replikas flexibler zu gestalten und unter anderem die Ausfallzeiten durch Wartungsfenster zu verkürzen. Administratoren können nun definieren, dass Daten dann als sicher geschrieben gelten, wenn eine ausreichende Zahl von Replikas die erfolgreiche Änderung melden.

Parallele Queries hat PostgreSQL bereits seit der im Herbst 2016 erschienenen Version 9.6 an Bord. PostgreSQL 10 erweitert die Arbeitsweise auf Index- und Bitmap-Scans sowie Merge Joins. Außerdem können nicht-korrelierende Sub-Queries parallel ablaufen, und das Team hat den Einsatz der der parallelen Abfragen bei den prozeduralen Funktionen erweitert.

Darüber hinaus haben die Macher die Möglichkeiten zum Partitionieren ergänzt. Hinzugekommen sind Bereichs- und Listenpartitionierung als native Datenbankobjekte: Der Befehl

PARTITION OF parent_table FOR VALUES partition_bound_spec 

erzeugt Tabellen als Partition der Elterntabelle. Somit müssen Entwickler für die Partitionierung nicht länger auf Vererbung zurückgreifen.

Schließlich bringt PostgreSQL erweiterte Sicherheitsfeatures wie die SCRAM-Authentifizierung (Salted Challenge Response Authentication Mechanism), konkret über SCRAM-SHA-256 (RFC 7677). Weitere Neuerungen sollen vor allem die Datenintegrität sicherstellen und verhindern, dass beim Schreiben Widersprüche entstehen. Ein Failover-Konzept sorgt dafür dass Clients über libpq eine Verbindung mit einer Reihe Hosts versuchen und diese zum ersten verfügbaren aufbauen können.

Weitere Details zu PostgreSQL 10 lassen sich dem Blogbeitrag zum Release entnehmen. Der Sourcecode sowie Binaries unter anderem fĂĽr einige Linux-Server-Distributionen, Windows und macOS stehen auf der Download-Seite zum Herunterladen bereit. (rme)