PostgreSQL 9.6 ist fertig

Zu den wichtigsten Neuerungen der Open-Source-Datenbank gehören vor allem parallele Queries, die Volltextsuche nach Phrasen und die verbesserte Aufräumfunktion autovacuum. Zeitgleich macht das Backup-Tool Barman den Versionssprung auf 2.0.

In Pocket speichern vorlesen Druckansicht 58 Kommentare lesen
PostgreSQL 9.6 ist fertig
Lesezeit: 4 Min.
Von
  • Rainald Menge-Sonnentag
Inhaltsverzeichnis

Gut vier Monate nach der ersten Beta ist jetzt die finale Version von PostgreSQL 9.6 erschienen. Die augenscheinlichste Neuerung ist die Einführung paralleler Queries: Sequenzielle Scans bei strikten Read-only-Abfragen können ebenso parallelisiert ablaufen wie Aggregatfunktionen und Hash Joins. Da die parallele Ausführung (noch) nicht standardmäßig erfolgt, müssen Anwender sie zuvor aktivieren. Zur Steuerung dient der Parameter max_parallel_workers_per_gather in der Konfigurationsdatei, dessen Default-Wert 0 bedeutet, dass keine Parallelisierung erfolgt. Da jeder Prozess eigene Ressourcen beansprucht, beeinträchtigt ein zu hoher Wert die Performance: Vier Arbeitsprozesse können beispielsweise die benötigte CPU-Zeit, die Speicherauslastung und die verwendete I/O-Bandbreite bis zu verfünffachen.

Der besseren Verfügbarkeit dient die synchrone Replikation, die nun mehrere, simultane Standby-Server anspricht statt wie bisher nur einen. Die Macher haben die in PostgreSQL 8.1 eingeführte Aufräumfunktion autovacuum für große Tabellen optimiert, sodass sie bereits eingefrorene Daten nicht erneut bearbeitet.

Der Foreign Data Wrapper postgres_fdw zum Zugriff auf Daten, die auf einem externen Server liegen, kann mit Version 9.6 sowohl Joins und die Sortierung als auch UPDATEs und DELETEs komplett auf dem entfernten Server ausführen. Bisher war für die letzten beiden Befehle zunächst ein SELECT FOR UPDATE nötig, dem die zeilenweise Abarbeitung der UPDATE- oder DELETE-Kommandos folgte.

Neu ist zudem die Volltextsuche nach Phrasen über die in PostgreSQL 9.6 eingeführten tsquery-Operatoren <N> und <->. Das N in ersterem steht für eine Zahl, die die maximale Zahl der Lexeme festlegt, die zwischen den beiden Suchwörtern stehen dürfen. Steht <-> zwischen zwei Lexemen, so sucht das System nach Inhalten, in denen beide direkt nebeneinander in derselben Reihenfolge stehen.

Unter der Haube soll PostgreSQL 9.6 besonders bei Multi-CPU-Socket-Servern deutlich performanter sein und bei jüngeren Linux-Kernels die Ressourcen besser nutzen als Version 9.5. Die Optimierungen betreffen wohl vor allem die Replikation, die Aggregation, die Indizierung, die Sortierung und Stored Procedures. Gegenüber der letzten Beta hatte es bereits beim ersten Release Candidate lediglich Feinschliff gegeben. Unter anderem gab es wohl Probleme bei der Fehlerbehandlung von parallelen Queries in Locales, die nicht Englisch sind.

Weitere Details stehen in der offiziellen Bekanntmachung der Veröffentlichung von PostgreSQL 9.6 und in den Release Notes. Auf der Download-Seite befinden sich neben dem Quellcode auch Binaries für Windows, OS X, Solaris sowie zahlreiche Linux-Varianten zum Herunterladen.

Fast zeitgleich mit der Datenbank ist Barman in der Version 2.0 erschienen. Das Open-Source-Tool dient der Durchführung und Administration des Backups und der Wiederherstellung von PostgreSQL-Servern. Version 2.0 ermöglicht das Sichern im reinen Streaming-Modus, wofür es keine SSH-Verbindung benötigt. Dazu haben die Macher den Backup-Prozess in die PosgreSQL-Funktion pg_basebackup integriert und die Unterstützung von Replikations-Slots für das WAL-Streaming (Write-Ahead Logging) eingeführt.

Durch die Neuerung kann das Tool nun auch PostgreSQL-Server auf Windows und in Docker-Containern sichern. Barman nutzt zudem die mit PosgreSQL 9.6 eingeführte API für nebenläufige Backups, sodass die Sicherung von Standby-Servern ohne die pgespresso-Erweiterung erfolgen kann.

Details zum Backup-und-Recovery-Tool stehen im Blogbeitrag zur Veröffentlichung der Version 2.0. Die Software selbst steht auf der Barman-Site zum Herunterladen bereit. (rme)