Sterke en betrokken community
Het aantal verbeteringen en nieuwe toevoegingen in PostgreSQL 15 is enorm, dat getuigt van een sterke, actieve en betrokken community. Ruim vierhonderd DBA’s, developers en data-architecten hebben meegewerkt aan deze versie. Tijdens de PGConfEU-conferentie in Berlijn, waar wij als Silver-sponsor met een deel van ons team aanwezig waren, bleek ook de populariteit van Postgres. Het bezoekersaantal verbrak alle records en er is een enorme groei aan betrokken serviceproviders en sponsors te zien.
Uitgebreide update
PostgreSQL 15 is een mooi en uitgebreide update geworden. De wijzigingen en toevoegingen zijn te veel om op te noemen. Het complete overzicht is te vinden in de releasenotes, maar we stippen hier even de belangrijkste punten aan.
1. MERGE command
Nieuw in PostgreSQL 15 is de MERGE command. Het commando verwerkt inserts, updates en deletes in een enkele transactie. Door de toevoeging van het MERGE command is het gemakkelijker geworden om te migreren van SQL Server en Sybase (SAP ASE). Er waren al wel – arbeidsintensieve – workarounds, maar met MERGE is PostgreSQL 15 echt een stap voorwaarts in compatibiliteit.
Bron: Percona, Umair Shahid, PostgreSQL 15 – New features to be exited about
2. Verbeteringen logical replication
Er is meer flexibiliteit in het regelen van de replicatie door de mogelijkheden van filtering op rij- en kolomniveau en de mogelijkheid om specifieke kolommen te selecteren in kolomlijsten. Dit biedt bijvoorbeeld de optie om een specifieke datasubset uit een tabel te repliceren. Dat kan helpen om data te distribueren tussen verschillende nodes en verbetert de performance door data selectief te kunnen delen.
Bron: Percona, Umair Shahid, PostgreSQL 15 – New features to be exited about
3. Base backups
Deze functionaliteit maakt het mogelijk om doelen te specificeren voor back-ups en back-ups kunnen worden gecomprimeerd, zowel client als server. De back-up-locatie kan worden gespecificeerd met -t target
of –target=targe
t
. Client
is default, server
bewaart de back-up op de server, blackhole
gooit de inhoud weg, alleen voor test- en debugging-toepassingen gebruiken.
4. Verbeterde datacompressie
In PostgreSQL 15 kun je nu ook gebruik maken van LZ4 en Zstandard algoritmes (tot PostgreSQL 14 werd PGLZ toegepast). Dit verbetert de snelheid van compressie aanzienlijk en geeft meer ruimte voor de meeste workloads. Je kan de gewenste compressiemethode kiezen met wal_compression
.
Permanente archivering werd voorheen met shell commands geregeld. Nu werkt WAL ook met maatwerkmodules. Hoewel het via shell commands vaak simpeler is, zal een custom archive-module veel stabieler zijn en beter presteren.
5. Logging
Sinds PostgreSQL 15 is het mogelijk een log-output te genereren in JSON: log_destination=jsonlog
. Dit formaat is handig bij het integreren in andere (statistieken-) applicaties. Daarnaast worden de logfiles vanaf nu bewaard in shared memory. Hierdoor is er onder andere geen schrijfactiviteit meer naar temp-files.
6. Snelheid van sorteren
Door slimmere inzet van geheugenallocatie, het terugdringen van het geheugenverbruik bij on-disk- en in-memory-sorteringen en speciale sorteringsroutines voor gebruikelijke datatypen zijn aanzienlijke performanceverbeteringen waar te nemen. Het leuke is dat je geen veranderingen hoeft door te voeren in je database of applicatie. Het algoritme is aangepast waardoor het ‘gewoon werkt’ en je de performanceverbeteringen ziet.
Bron: PGConfEU 2022, Amit Kalipa – PostgreSQL 15 and beyond
7. Performanceverbeteringen
Verder zijn een aantal wijzigingen doorgevoerd die ook de algemene performance verbeteren. Zoals partitioning, parallelism, recovery/replay en vacuum.
Waarom updaten?
Het is in het algemeen verstandig om actueel en recent te blijven. De nieuwste versie werkt uiteindelijk in de meeste gevallen het best en je bereikt in veel gevallen ‘vanzelf’ performanceverbetering.
Het is uiteraard wel aan te bevelen de releasenotes van elke versie goed te lezen en daarbij de afweging te maken of de major versie (in dit geval 15) direct, of op korte termijn, nieuwe opties brengt die je in de praktijk ook echt verder helpen. Oudere versies (zolang de community die nog ondersteunt) worden blijvend – tot end-of-life, vijf jaar na de release van de major versie – geüpdatet met bug- en securityfixes via minor updates (12.12, 13.8, 14.5 etc). Je hoeft dus niet per se haast te maken.
Versies overslaan
Wat PostgreSQL ook uniek maakt is dat je met pg_upgrade de optie hebt om versies over te slaan. Zo kun je van bijvoorbeeld PostgreSQL 11 naar PostgreSQL 13 of zelfs 15. Let wel op dat je ook dan goed de releasenotes van alle tussenliggende versies doorleest zodat je de consequenties kunt overzien. Wacht niet té lang, oudere versies worden tot vijf jaar terug (vijf major versies) ondersteund. En voordat je gaat upgraden, zorg wel dat je de laatste minor update hebt geïnstalleerd van je huidige major versie.
Meer weten over PostgreSQL en upgraden?
Ben je geïnteresseerd geraakt in het toepassen van of migreren naar PostgreSQL? Wil je meer weten of upgraden in jouw situatie goed kan werken en wat de consequenties zijn? Neem gerust vrijblijvend contact met ons op, we helpen je graag.