PostgreSQL 8.4: Le novità per l’amministrazione

Dopo l’articolo sulle novità in termini di SQL, prosegue lo "speciale" su PostgreSQL 8.4 con la seconda parte, centrata sulle novità per l’amministratore di server. La principale funzionalità aggiunta in questa release riguarda le collation a livello di database; tuttavia, il processo di semplificazione nella gestione del server è andato avanti, con la rimozione del parametro max_fsm_pages. Altre comodità cosiddette minori e spesso trasparenti per l’utente sono state aggiunte in questa release.

Ecco una lista delle principali novità in ambito "amministrazione" di PostgreSQL 8.4.

Collation a livello di database

Il tipo dell’ordine alfabetico delle stringhe di caratteri è da adesso una proprietà dei database invece che una proprietà del server definita a livello di inizializzazione. Questo permette agli utenti di avere molteplici linguaggi naturali (lingue) pienamente supportati dalla stessa installazione di PostgreSQL.

Questa funzionalità spiana la strada alle collation a livello di tabella e di colonna, presumibilmente già dalle prossime release di PostgreSQL.

Approfondimento sul comando CREATE DATABASE.

Mappa di visibilità (Visibility Map)

Grazie ad un registro in memoria che tiene traccia delle pagine "sporcate" dalle transazioni (la cosiddetta "mappa di visibilità"), il processo di VACUUM riesce a leggere solamente le pagine che necessitano di pulizia invece di scandire tutte le pagine della tabella. La mappa di visibilità permette pertanto di ridurre notevolmente i tempi di vacuum per tabelle di grandi dimensioni.

Approfondimento su "Visibility Map".

Mappa di spazio libero ottimizzata in modo automatico (free space map)

Una modifica molto importante al backend di PostgreSQL 8.4 è la gestione automatica della mappa di spazio libero (free space map). Fino alla versione 8.3 compresa, gli amministratori dovevano impostare il parametro max_fsm_pages per stabilire il numero di pagine su disco delle quali tenere traccia nella mappa di spazio libero all’interno della memoria condivisa. Questo parametro richiedeva un attento studio da parte degli amministratori del server di PostgreSQL.

Ebbene, con PostgreSQL 8.4, l’opzione max_fsm_pages è definitivamente sparita: il sistema è in grado di tenere traccia in modo automatico e con molta più precisione lo spazio libero all’interno di ogni pagina. Ad ogni tabella infatti viene affiancata una mappa di spazio libero memorizzata su disco.

Configurazione di auto-vacuum a livello di tabella con i comandi CREATE TABLE e ALTER TABLE / SET

Rispetto a PostgreSQL 8.3, non è più necessario inserire manualmente nel catalogo pg_autovacuum le configurazioni a livello di tabella per auto-vacuum. Adesso è possibile gestire la configurazione a livello di tabella con i comandi CREATE TABLE e ALTER TABLE. Inoltre (e finalmente), la configurazione di auto-vacuum è adesso salvata da pg_dump.

Per maggiori informazioni:

Esecuzione a tempo per pgbench

E’ possibile richiedere a pgbench "quante cose riesce a fare in uno specifico lasso di tempo", piuttosto che "quanto tempo impiega a eseguire uno specifico set di operazioni". La differenza è soprattutto nell’organizzazione dei test e nell’analisi dei risultati: paragonare il numero di query eseguito in un intervallo di tempo è molto più semplice ed efficace.

La funzione pg_conf_load_time()

Non dovrai più indovinare se il file postgresql.conf è più nuovo di quello utilizzato dal server PostgreSQL in azione: è possibile confrontare la sua data di modifica con quella del risultato della funzione pg_conf_load_time().

Visualizzazione fino a livello di colonna per EXPLAIN verbose

Adesso il comando EXPLAIN VERBOSE fornisce informazioni utili sulle colonne che ogni nodo dell’albero delle query restituisce al padre: questo tipo di informazioni mostra quanto pessima sia "SELECT *".

Riporta tutte le query coinvolte in un errore di deadlock

Informazioni sui deadlock sono fornite direttamente dal server PostgreSQL, senza necessità di scoprirle dai log.

Migliorate informazioni di pg_settings

pg_settings è in grado di mostrare le opzioni disponibili per le istruzioni globali di configurazione utente (GUC) con un insieme definito di valori. Molte impostazioni infatti accettano valori enumerati, e pg_settings è adesso in grado di mostrarli, facilitando la vita all’utente.

Migliorata la gestione dei certificati SSL

Le connessioni SSL possono adesso prevenire da attacchi del tipo man-in-the-middle, grazie alla verifica dei certificati del client.

Indici GIN multi-colonna

E’ possibile adesso avere indici GIN multi-colonna.

Approfondimento su indici GIN.

Miglioramenti al file pg_hba.conf

Adesso è possibile specificare opzioni di autenticazione nella forma NOME=VALORE. E’ stata inoltre rimossa l’opzione ident sameuser, rendendola di default nel caso in cui la usermap non sia specificata.

Per maggiori informazioni e per gli altri cambiamenti, si rimanda alla sezione della documentazione sul file pg_hba.conf.

Questo articolo è una traduzione da me riadattata del documento "What’s new in 8.4" del PostgreSQL Global Development Group. Ringrazio inoltre Hubert Lubaczewski per la serie di articoli "Waiting for 8.4".

This Post Has 0 Comments

Leave A Reply