Nuove funzionalità aumenteranno flessibilità, scalabilità e prestazioni di PostgreSQL!
Flessibilità
Il nuovo tipo di dato JSONB di PostgreSQL 9.4, supporterà lookup veloci e query di ricerca semplici utilizzando gli indici GIN (Generalized Inverted Index). Gli utenti potranno estrarre e manipolare dati JSON con prestazioni che uguagliano e migliorano i database più comuni per la gestione di documenti.
Scalabilità
La decodifica logica (Logical Decoding) della versione 9.4, fornirà una nuova API per leggere, filtrare e manipolare il flusso di replica di PostgreSQL. Nuovi strumenti di replica, come la Replica Bi-Direzionale (BDR), e altri miglioramenti, come replication slot e standby in ritardo (time-delayed), semplificheranno la gestione e aumenteranno l’utilità dei server in replica.
Prestazioni
La versione 9.4 introduce miglioramenti che permetteranno agli utenti di sfruttare ancora di più i loro server PostgreSQL, fra cui:
Vuoi saperne di più?
Per ulteriori informazioni e spiegazioni sulle funzionalità aggiunte in PostgreSQL 9.4, si consiglia la consultazione del press kit ufficiale rilasciato dalla Comunità.
Segui inoltre la nostra serie di articoli in italiano su PostgreSQL 9.4, a partire dalle novità dedicate agli amministratori di sistema.
]]>
La versione 9.4 di PostgreSQL, in uscita fra pochi giorni, presenta numerose piccole novità per gli amministratori, in aggiunta all’introduzione del supporto alla replica logica, ovvero il primo passo verso una futura implementazione di replica multi-master in PostgreSQL. In questo articolo in due parti mostreremo le principali novità per gli amministratori, partendo proprio dalla replica logica, costituita da un insieme di nuove feature:
Lo sviluppo di queste funzionalità è un frutto diretto del lavoro effettuato da 2ndQuadrant (e, in particolare, da Andres Freund) all’interno del progetto BDR (BiDirectional Replication), una soluzione open source di replica multi-master basata su PostgreSQL, il cui codice è progressivamente incluso nel core di Postgres con l’obiettivo di diventarne parte integrante nei prossimi anni.
Nel prossimo articolo, vedremo le altre novità dedicate agli amministratori.
I replication slot fisici sono una struttura che mantiene la memoria dello stato di uno standby e dei WAL a questo necessari, anche quando lo standby è offline. In questo modo non è più indispensabile dover stimare wal_keep_segments
o configurare il continuous archiving. Utili quindi per server in replica fisica, sono poi indispensabili alla replica logica, dove i server potrebbero avere contenuti differenti non replicati e non sarebbe così possibile ricostruire il server da zero.
Maggiori informazioni in un articolo di Craig Ringer sui replication slot di PostgreSQL 9.4.
È stato introdotto il parametro wal_level = logical
. Usando questa impostazione i WAL file avranno una dimensione leggermente maggiore di quanta ne abbiano adesso in hot_standby
, ma conterranno le infomazioni necessarie al funzionamento della decodifica logica.
Una volta impostato wal_level = logical
all’interno del postgresql.conf
, sarà possibile iniziare a usare i replication slot logici. Simili come idea ai replication slot fisici, a differenza di questi operano su una singola base di dati, e inviano la sequenza di cambiamenti avvenuti su di essa.
La decodifica logica usa i replication slot e dei plugin di decodifica per inviare e rendere comprensibili a elementi esterni i cambiamenti avvenuti all’interno del db. Per la visualizzazione sono state sviluppate le funzioni pg_logical_slot_get_changes
e pg_logical_slot_peek_changes
, con la differenza che la prima consuma il cambiamento nella coda e la seconda lo legge soltanto. L’output della funzione dipende dal plugin usato per creare lo slot. Al momento ne sono stati sviluppati tre:
test_decoding
, il plugin di default;wal2json
, che mostra i cambiamenti avvenuti in formato JSON;decoder_raw
, che ricostruisce le query che hanno applicato la modifica.REPLICA IDENTITY
è un nuovo parametro a livello di tabella. Identifica quali informazioni devono essere scritte nei WAL per identificare le tuple modificate o rimosse se è impostato wal_level = logical
. Esistono 4 valori:
DEFAULT
: scrive la precedente chiave primaria della tupla se è stata modificataUSING INDEX idx
: scrive le informazioni dell’indice usato, che deve essere UNIQUE
, non parziale e NOT NULL
.FULL
: scrive tutte le colonne della vecchia tupla. Utile se manca una chiave primaria.NOTHING
: non scrive informazioni sul vecchio record. È il default per le tabelle di sistema.Utilizzando le funzioni e i plugin di decodifica, è possibile scrivere i propri consumer e rimuovere la dipendenza dei propri database da soluzioni di replica basate su trigger, ben più pesanti.
Il blog di Michael Paquier contiene un esempio di codice SQL che mostra l’uso della replica logica.
Nella prossima parte, ci occuperemo delle altre novità principali nel campo Operation di PostgreSQL 9.4, fra cui pg_prewarm, tablespace, standby in ritardo, gestione dei WAL, ecc… Alla prossima puntata!
]]>
Le nuove feature più importanti disponibili per il test nella versione Beta, includono:
Queste feature ampliano le capacità di PostgreSQL, introducono nuove sintassi, API e interfacce di gestione.
Ci sono molte altre funzionalità nella versione Beta della 9.4 e tutte hanno bisogno di essere testate da voi:
Ci sono anche molti cambiamenti interni al funzionamento di Write Ahead Log (WAL), indici GIN, replica, aggregazione, e gestione del catalogo del sistema. In pratica, abbiamo bisogno del vostro aiuto per trovare qualsiasi nuovo bug che potremmo aver introdotto in queste aree prima di rilasciare la release 9.4.
Per un elenco completo delle feature della versione Beta 9.4, potete far riferimento alle note di rilascio. Descrizioni aggiuntive e informazioni sulle nuove feature sono disponibili sul Wiki, alla pagina 9.4 Features Wiki Page.
Abbiamo bisogno della nostra Community per avere supporto nei test della nuova versione, al fine di garantire elevate prestazioni e l’assenza di bug. Vi preghiamo di effettuare il download di PostgreSQL 9.4 Beta 1 e di provarla con i vostri carichi di lavoro e le vostre applicazioni il prima possibile. Date i vostri feedback agli sviluppatori di PostgreSQL. Le feature e le API nella versione Beta 1 non cambieranno in modo sostanziale prima del rilascio della release finale, in modo da permettervi di cominciare a sviluppare applicazioni basandovi su Postgres 9.4. Maggiori informazioni su come eseguire test e riportare problemi.
Scarica PostgreSQL 9.4 Beta 1, compresi file binari e installer per Windows, Linux e Mac dalla nostra pagina di download.
La documentazione completa della nuova release è disponibile online – e si installa anche con PostgreSQL.
]]>