Fertigstellung von PostgreSQL 10
An der Open-Source-Datenbank sind Erweiterungen und logische Replikation wesentliche Neuerungen der parallelen Queries. Das Team widmete sich den Themen Sicherheit und Zuverlässigkeit.
Nach fünfmonatiger Betaphase und Ende September veröffentlichten Release Candidate scheint PostgreSQL 10 nun stabil genug für den Release-Status zu sein. Ein entscheidender Punkt bei der Entwicklung war die optimierte Verteilung von Daten auf verschieden Knoten und damit ist der schnelle Zugriff, die Verwaltung und Analyse gewährleistet. Dabei handelt es sich um effiziente Aufteilung und geeignete Algorithmen nach der Strategie „Teile und herrsche“.
Logische Replikation
Dazu hat die sogenannte logische Replikation (Logical Replication) unter Verwendung vom Publish-Subscribe-Modell beigetragen und überträgt keine Daten wie bei der physischen Replikation Byte-weise. Vom Publisher-Knoten werden geänderte Daten verteilt, und diese übernehmen ein oder mehrere Subsciber Nodes. Möglich ist sogar eine kaskadierende Replikation, dabei sind in dem Fall die Empfänger selbst Publisher.
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.
Für synchrone ReplikatioPostgreSQL wird des Weiteren Quorom Commit eingeführt, damit wird das empfangen der Erfolgsbestätigung von Remote Replikas flexibler gestaltet. Daneben verkürzen sich Ausfallzeiten durch das Wartungsfenster. Administratoren können damit darstellen, dass Daten als sicher geschrieben gelten, sobald eine ausreichende Zahl von Replikas eine erfolgreiche Änderung melden.
Parallele Queries und Partitionierung erweitert
Bereits vorhanden sind bei den Parallele Queries von PostgreSQL bereits die seit Herbst 2016 erschienene Version 9.6. Des Weiteren wird die Arbeitsweise auf Index- und Bitmapscans sowie Merge Joins erweitert. Nicht-korrelierende Sub-Queries parallel laufen damit nicht parallel ab. Das Team erweiterte außerdem den Einsatz der parallelen Abfragen bei prozeduralen Funktionen.
Darüber wurden die Möglichkeiten zum Partitionieren ergänzt. Hinzu kamen Bereichs- und Listenpartitionierung als eigene Datenbankobjekte:
Der Befehl
PARTITION OF parent_table FOR VALUES partition_bound_spec
erzeugt als Partition Tabellen der Elterntabelle und Entwickler müssen für die Partitionierung nicht mehr auf Vererbung zurückgreifen.
Weiterhin bringt PostgreSQL erweiterte Sicherheitsfeatures, zum Beispiel die SCRAM-Authentifizierung (Salted Challenge Response Authentication Mechanism), direkt über SCRAM-SHA-256 (RFC 7677). Die Datenintegrität soll durch weitere Neuerungen sicherstellen und verhindern, dass beim Schreiben keine Widersprüche entstehen. Clients können mit dem Failover-Konzept über libpq eine Verbindung mit einigen Hosts versuchen und diese zum ersten verfügbaren Host aufbauen.