PostgreSQL 16: il database open source che non smette di innovare

PostgreSQL 16 introduce replica logica da standby, parallelismo per FULL OUTER JOIN, pg_stat_io per l'analisi I/O e accelerazione SIMD. Quasi trent'anni di evoluzione continua.

Open SourceWeb Open SourcePostgreSQLDatabaseSQLPerformance

Quasi trent’anni di evoluzione

PostgreSQL ha rilasciato la sua prima versione pubblica nel 1996. Da allora, ogni major release ha aggiunto funzionalità che in molti casi anticipavano o eguagliavano quelle dei database commerciali. La versione 16, rilasciata a settembre 2023, prosegue questa tradizione con miglioramenti che toccano replica, parallelismo, osservabilità e prestazioni a basso livello.

Replica logica da standby

Una delle novità più significative è la possibilità di eseguire la replica logica da un server standby. Nelle versioni precedenti, solo il server primario poteva pubblicare i cambiamenti logici verso i subscriber. Questo costringeva a concentrare il carico di replica sul primario, aggiungendo overhead a un sistema già sotto pressione in ambienti ad alto traffico.

Con PostgreSQL 16, un server in streaming replication (standby fisico) può fungere da publisher per la replica logica. Il risultato è una separazione del carico: il primario gestisce le scritture, lo standby gestisce la distribuzione logica dei dati verso altri nodi, data warehouse o sistemi analitici.

Parallelismo e FULL OUTER JOIN

Il query planner di PostgreSQL 16 estende il supporto al parallelismo per le operazioni di FULL OUTER JOIN e RIGHT OUTER JOIN. Nelle versioni precedenti, queste operazioni venivano eseguite su un singolo worker anche quando il planner avrebbe potuto distribuirle su più core. Il miglioramento è particolarmente rilevante per query analitiche su tabelle di grandi dimensioni, dove i join complessi rappresentano spesso il collo di bottiglia.

pg_stat_io e osservabilità

La nuova vista pg_stat_io fornisce statistiche dettagliate sulle operazioni di I/O: letture, scritture, estensioni di file, suddivise per backend type (client, autovacuum, checkpointer, WAL writer). Prima di pg_stat_io, analizzare il comportamento I/O di PostgreSQL richiedeva strumenti esterni a livello di sistema operativo. La vista integrata consente di correlare i pattern di I/O direttamente con l’attività del database.

Accelerazione SIMD

PostgreSQL 16 introduce l’uso di istruzioni SIMD (Single Instruction, Multiple Data) per accelerare operazioni interne frequenti, in particolare la scansione di stringhe per il parsing JSON e ASCII. L’implementazione sfrutta le istruzioni vettoriali disponibili sulle CPU moderne per elaborare più byte per ciclo di clock, con miglioramenti misurabili nel throughput di funzioni di elaborazione testo e dati semi-strutturati. Il database è rilasciato sotto la PostgreSQL License, una licenza liberale simile alla BSD.

Link: postgresql.org

Vuoi supporto? Sei sotto attacco? Stato dei servizi
Vuoi supporto? Sei sotto attacco? Stato dei servizi