E' ormai disponibile da qualche giorno la release Beta di PostgreSQL 10, prossima milestone di una delle più note soluzioni Open Source per la gestione dei database relazionali. In attesa della versione definitiva è ora già possibile testare le funzionalità che saranno presenti nel momento in cui l'aggiornamento sarà pronto per la fase di general availability.
Replicazione, partizionamento, JSON
L'attuale Beta conferma la presenza di alcune di alcune delle feature promesse dagli sviluppatori del progetto, a cominciare dal supporto nativo per la replicazione logica che consentirà di limitare la replicazione a tabelle specifiche o di utilizzare la replicazione per le procedure di aggiornamento. Interessante anche l'implementazione del supporto al parallelismo, con la possibilità di ottimizzare queste ultime sfruttando scansioni degli indici e merge join.
Con PostgreSQL 10 sarà disponibile il partizionamento nativo delle tabelle, con la possibilità di definire intervalli e liste trattati come oggetti nativi, nel contempo si potranno sfruttare nuove regole di monitoraggio per l'assegnazione dei privilegi di accesso ai dati. Saranno supportate inoltre la sintassi XMLTABLE per le query, la compressione per gli stream pg_receivewal e la collation ICU e, forse una delle novità più interessanti, si potranno operare ricerche Full Text sia per il formato d'interscambio JSON (JavaScript Object Notation) che per il data type JSONB.
Compatibilità, sicurezza e prestazioni
A livello di infrastruttura non sono da escludersi alcune incompatibilità con le versioni precedenti del Database Engine, per questo motivo è consigliabile seguire da vicino l'evoluzione dell'ultima release fino al rilascio della versione definitiva attesa per la fine dell'anno corrente. Sono invece abbastanza chiare le novità di PostgreSQL 10 dedicate alla sicurezza e alle prestazioni.
Per quanto riguarda la prima è possibile citare il supporto per l'autenticazione SCRAM (Salted Challenge Response Authentication Mechanism) che dovrebbe rendere più sicuri gli accessi basati sull'utilizzo delle password. Si potranno poi definire delle liste Multi-host che, in caso di fallimento durante i tentativi di connessioni, permetteranno di reperire il primo host utilizzabile presente in elenco.
Per il miglioramento delle performance è stato effettuato un lavoro di revisione a carico di alcune funzioni, come per esempio SUM(), dell'encoding e dell'elaborazione delle espressioni. Un indicatore efficace del risultato di questi interventi potrebbe essere la maggiore velocità delle query analitiche per grandi quantità di dati che, in alcuni casi, permetterebbe di registrare risultati fino al 40% migliori rispetto al passato.