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.
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.
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.
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.
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:
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.
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()
.
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 *
".
Informazioni sui deadlock sono fornite direttamente dal server PostgreSQL, senza necessità di scoprirle dai log.
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.
Le connessioni SSL possono adesso prevenire da attacchi del tipo man-in-the-middle, grazie alla verifica dei certificati del client.
E’ possibile adesso avere indici GIN multi-colonna.
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