Aggiornamento a MariaDB Server 10.3. Cosa c’è di nuovo?

Siamo felici di annunciare il rilascio dell’aggiornamento generale di MariaDB Server 10.3! Questo rilascio è una grande pietra miliare per lo sviluppo di MariaDB Server ed è il risultato di un enorme sforzo da parte del team di sviluppo e dei collaboratori – grazie a tutti quelli coinvolti! Con la precedente major release di MariaDB Server 10.2, l’anno scorso, abbiamo iniziato un percorso di aggiunta di funzionalità di livello enterprise ai nostri servizi di hosting per colmare meglio il gap con i database proprietari. Con MariaDB Server 10.3 abbiamo fatto un grande passo avanti in questo percorso, essendo il primo database open source enterprise ad aggiungere funzionalità come l’elaborazione temporale dei dati (attraverso il versioning del sistema) e la compatibilità con le sequenze Oracle e Oracle PL/SQL. Allo stesso tempo, vogliamo rimanere fedeli alle nostre radici open source e innovative (non ci chiameremmo Innovando altrimenti!) aggiungendo il supporto per nuovi motori di archiviazione in grado di adattarsi più facilmente ai diversi carichi di lavoro e al diverso hardware a disposizione degli utenti. Questo percorso ci permette di adattarci rapidamente a un panorama in continua evoluzione dove le nuove innovazioni vengono create a un ritmo costantemente accelerato. Questa è la nostra più grande release finora e, con questa release, vogliamo mettere il nostro paletto nella categoria dei database Enterprise.

I miglioramenti chiave di MariaDB Server 10.3 possono essere inseriti nelle seguenti categorie:

  • Elaborazione dei dati temporali (tabelle in versione di sistema)
  • Caratteristiche di compatibilità Oracle
  • Motori di archiviazione costruiti ad hoc

Elaborazione dei dati temporali

L’elaborazione dei dati temporali attraverso la funzionalità di versioning del sistema è una delle aggiunte più interessanti della versione 10.3 di MariaDB Server. Con il versioning di sistema, il database tiene traccia di tutte le modifiche apportate ad ogni riga della tabella. Le vecchie versioni delle righe non sono visibili attraverso la normale sintassi delle query, ma usando una sintassi speciale si può accedere a tutte le vecchie versioni della riga. Questa capacità si presta a un gran numero di casi d’uso, dall’auditing e la forense (trovare l’esatto set di risultati point-in-time di una query sospetta eseguita qualche tempo fa) a cose come analizzare i cambiamenti nei vostri dati, confrontare le preferenze dei clienti anno per anno e una moltitudine di altre possibilità. Questa funzione può essere attivata per ogni tabella e la cronologia può anche essere cancellata periodicamente in modo che la vostra tabella non cresca indefinitamente. I casi d’uso sono eccitanti e infiniti!

Compatibilità con ORACLE

Man mano che la domanda di MariaDB Server è aumentata nelle grandi imprese, abbiamo anche visto la necessità di funzionalità che sono facilmente disponibili nei database proprietari. Affinché MariaDB sia più facile da usare per i DBA e gli ingegneri di database esperti di altri prodotti, è stata aggiunta quanta più compatibilità possibile.

In MariaDB Server 10.3, è stata aggiunta una nuova sintassi di stored routine in aggiunta alla sintassi MariaDB SQL/PSM già esistente. Ora è possibile supportare MariaDB SQL/PL che è una sintassi progettata per essere compatibile con Oracle PL/SQL. In questo modo, la migrazione delle applicazioni esistenti è molto più facile e le competenze esistenti possono essere utilizzate senza una complessa riqualificazione. Nel processo sono stati aggiunti diversi nuovi costrutti al supporto di stored procedure come i nuovi tipi di dati ROW.

La nuova sintassi non è l’unica nuova caratteristica di compatibilità, sono state aggiunte le sequenze per avere un modo più flessibile di creare chiavi primarie uniche rispetto alla funzione auto_increment già esistente. Questa caratteristica è pienamente compatibile con le sequenze Oracle. Insieme alle caratteristiche aggiunte in precedenza (come le funzioni finestra, le espressioni di tabelle comuni (CTE), ecc.) ora abbiamo un profondo set di caratteristiche di livello enterprise che possono affrontare qualsiasi tipo di esigenza applicativa.

Motori di archiviazione costruiti ad hoc

In MariaDB, crediamo nell’utilizzo dello strumento giusto per il mestiere giusto. Tuttavia, non crediamo che sia necessario cambiare tutto per raggiungere questo obiettivo. Abbiamo un’architettura unica con motori di storage collegabili che permette all’utente di adattare il database al caso d’uso e al carico di lavoro senza cambiare le caratteristiche e le funzionalità principali. Crediamo che questa flessibilità serva l’interesse dell’utente e lavoreremo per migliorare ulteriormente questo aspetto con le future versioni di MariaDB. Questa architettura permetterà sia alla comunità che al nostro team di innovare ulteriormente aggiungendo motori di storage progettati per nuovi hardware e nuovi casi d’uso. In MariaDB Server 10.3, introduciamo due nuovi storage engine dichiarati stabili, MyRocks e Spider.

MyRocks nasce da una collaborazione con Facebook dove lo storage engine è costruito sopra RocksDB – un progetto open source mantenuto principalmente da Facebook. Il motore di archiviazione di MyRocks è costruito utilizzando un’architettura log-structured merge tree (LSM tree) e si adatta bene a carichi di lavoro ad alta scrittura. MyRocks ha anche un rapporto di compressione molto alto ed è costruito per ottimizzare la durata dei dischi SSD.

Spider è un motore di archiviazione progettato per una scala estrema. Il motore di archiviazione Spider permette di shardare una specifica tabella su più nodi. Utilizza il protocollo di partizionamento per definire come la tabella debba essere suddivisa e ogni singolo shard risiede su un server MariaDB remoto che gestisce solo le query per quel particolare shard. Con Spider si ottiene uno scaling quasi lineare per gli INSERIMENTI e le chiavi.

E c’è di più…

Oltre a questo, si sono aggiunte una moltitudine di funzionalità per aiutare a velocizzare le operazioni di schema (come ADD COLUMN istantaneo) e altre ottimizzazioni e funzionalità di compatibilità. La funzione ADD COLUMN è un altro esempio della nostra del team di sviluppo di MariaDB con clienti e partner, tra cui Alibaba, Tencent e ServiceNow, ed è solo l’inizio per rendere le operazioni DDL pesanti più utilizzabili.