Commenti(0)
MariaDB il fork dal creatore di MySQL
L’articolo offre una prima descrizione di MariaDB, il fork di MySQL creato da Monty Widenius, lo stesso creatore di MySQL
La versione originale di questo articolo è rintracciabile su:
http://santecaserio.altervista.org/wordpress/?p=135
Si chiama MariaDB il principale fork di MySQL, nato dal suo stesso creatore Monty Widenius in seguito all’acquisizione di MySQL da parte della Sun e, infine, di quest’ultima società da parte della Oracle.
Il nome suggerisce che, nelle intenzioni iniziali di Widenius, l’aspetto su cui il fork si sarebbe dovuto concentrare avrebbe dovuto essere Maria, lo storage engine da lui stesso creato. In realtà MariaDB include anche altri storage engine, sviluppati da terze parti. Vi sono poi alcuni contributi apportati dalla comunità, che in MySQL non sono stati inclusi – probabilmente a causa di procedure troppo rigide, che per la verità non sono state introdotte né da Sun né da Oracle. Ma il lavoro principale degli sviluppatori di MariaDB consiste probabilmente nel migliorare il codice già esistente e quello che viene man mano sviluppato per MySQL, testandolo e correggendo bug e problemi di performance.
La piattaforma primaria per MariaDB è certamente GNU/Linux. In particolare sono stati creati dei pacchetti per varie versioni di Ubuntu, mentre non sono ancora pronti gli RPM per Red Hat e CentOS. Vi sono però i binari per GNU/Linux a 32 e a 64 bit. E’ inoltre scaricabile una versione per Windows che non necessita di installazione. Il sito di MariaDB al momento non menziona la volontà di supportare (o meno) MacOS o altri sistemi UNIX.
Il programma è attualmente in fase beta, quindi non pronto per essere utilizzato in ambienti di produzione. Scaricando l’ultima versione è comunque possibile farsi un’idea abbastanza precisa di come sarà la versione stabile.
La licenza utilizzata è la GNU GPL versione 2, ereditata da MySQL.
Analizziamo di seguito le varie novità di MariaDB rispetto al progenitore MySQL.
Maria
Si tratta di uno storage engine che deriva da MyISAM. Rispetto a quest’ultimo è più performante, soprattutto per quanto riguarda il caching; inoltre può gestire tabelle transazionali. Questa caratteristica sacrifica in parte le performance dei comandi SQL ed è attiva di default quando si crea una tabella. Per creare un’entità non transazionale ma più performante si può usare un’istruzione simile alla seguente:
<span class="sql"> CREATE TABLE new_tab (...) ENGINE=Maria TRANSACTIONAL=0; </span>Come per le tabelle MyISAM, le entità Maria non transazionali possono utilizzare il formato FIXED (più performante) o il formato DYNAMIC (richiede meno spazio). Esiste poi il formato PAGE (l’unico disponibile per le tabelle transazionali), ideato per velocizzare il chaching. Tramite la utility maria_pack è possibile generare tabelle compresse di sola lettura, esattamente come si fa con MyISAM.
MariaDB utilizza Maria per gestire le tabelle temporanee create internamente e questo velocizza l’esecuzione di alcune query.
MyISAM, comunque, è ancora presente in MariaDB.
XtraDB
Questo storage engine è un fork di InnoDB sviluppato dalla Percona (http://www.percona.com) . Esso incorpora diversi contributi apportati dalla comunità e non presenti nel suo progenitore e, in MariaDB, lo sostituirà.
Allo stato attuale si può notare come l’inclusione di questo engine sia in qualche modo iniziata (ad esempio la presenza della tabella XTRADB_ENHANCEMENTS), ma non è ancora possibile utilizzarlo.
PBXT
PBXT è uno storage engine transazionale sviluppato dalla PrimeBase (http://www.primebase.org). Implementa il controllo di versione multipla dei record, che permette di modificare righe delle tabelle senza bloccare l’accesso da parte di altre query, anche durante una transazione. I dati modificati da una transazione vengono scritti su disco una sola volta, in quanto PBXT garantisce l’affidabilità senza che i dati passino prima da un apposito log. Ha inoltre un meccanismo di rilevazione dei deadlock.
I vantaggi di questo storage engine risiedono dunque nelle prestazioni, che possono essere analizzate tramite il tool xstat e la tabella PBXT_STATISTICS nell’INFORMATION_SCHEMA.
Analisi delle prestazioni
E’ stato migliorato lo slow query log, al quale sono state aggiunte numerose informazioni che dovrebbero facilitare l’individuazione dei colli di bottiglia. Sia questo log sia l’istruzione SHOW PROCESSLIST, inoltre, forniscono ora informazioni dettagliate fino al microsecondo (non più al secondo).
Prestazioni e affidabilità
Il sito di MariaDB promette una maggiore stabilità, che deriverebbe anche dalla scelta di eliminare, dove possibile, i warning generati in fase di compilazione. p<>. Abbiamo inoltre un incremento delle prestazioni facilmente rilevabile in almeno un tipo di query scritte male (SELECT che citano nella clausola FROM tabelle non effettivamente utilizzate). E’ infine segnalato un miglioramento prestazionale nella gestione dei thread.
E dopo?
Lo sviluppo di MariaDB, naturalmente, continua. Nel ramo 5.1 dovranno ancora essere inseriti gli storage engine XtraDB, che sostituirà InnoDB, e FederatedX, una evoluzione di FEDERATED, il quale non è più mantenuto. La prossima versione sarà la 5.2.
E’ possibile tenere d’occhio il lavoro svolto dal team di sviluppo grazie al worklog pubblico, che si trova a questo indirizzo: http://askmonty.org/worklog/index.pl
Siti di riferimento
Sito di MariaDB: http://askmonty.org/
Planet MariaDB: http://planetmariadb.org/
Documentazione di Maria: http://dev.mysql.com/doc/refman/5.1-maria/en/se-maria.html
Documentazione di XtraDB: http://www.percona.com/docs/wiki/percona-xtradb:start
Documentazione di PBXT: http://www.primebase.org/documentation/
Condividi su:
Esprimi un voto:
Argomenti chiave:

MySQL Report un tool di shell per tenere tutto sotto controllo