Sante Caserio
pubblicato più di 2 anni fa

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:

  • Current rating: 0.0/5
  • 1
  • 2
  • 3
  • 4
  • 5

Argomenti chiave:

Ultimi commenti Ultimi commenti

Esegui il Login oppure registrati per scrivere un commento.
Cerca nel sito...
Ultime recipes

Un utilissimo tool di shell che effettua un dettagliato e comodo report su MySQL MySQL Report un tool di shell per tenere tutto sotto controllo

Un utilissimo tool di shell che effettua un dettagliato e comodo report su MySQL


Vai alla recipe

Un utilissimo tool per sniffare il traffico Client/Server TCP/IP di MySQL MySQLSniffer sniffare il traffico TCP di MySQL

Un utilissimo tool per sniffare il traffico Client/Server TCP/IP di MySQL


Vai alla recipe

Verificare l'integrità, riparare gestire chiavi e memoria di tabelle MyISAM attraverso myisamchk riparare file MyISAM

Verificare l'integrità, riparare gestire chiavi e memoria di tabelle MyISAM attraverso il file myisamchk


Vai alla recipe

Un tool per comprimere le tabelle MyISAM fino a oltre il 50% myisampack comprimere file MyISAM

Un tool per comprimere le tabelle MyISAM fino a oltre il 50%


Vai alla recipe

mysqlshow le info di base sui database, tabelle e colonne senza utilizzare alcun mysqlshow visualizzare le informazioni sul database MySQL

mysqlshow le info di base sui database, tabelle e colonne senza utilizzare alcun client


Vai alla recipe

Utilizzando UNION / UNION ALL su campi int unsigned zerofill,
ho notato che MysqlUNION / UNION ALL su campi int unsigned zerofill. di DebUsr
Vai al tip

Utilizzo di funzioni come alias di campo tramite l'impiego di prepared statementReport con alias di campo dinamici di john_revelator
Vai al tip

Può capitare che sia necessario eseguire un dump di database in formato Comma SeparatedEsecuzione dump in formato CSV (tabelle in engine MyIsam esportate in formato CSV) di ghigomatto
Vai al tip

E' possibile eseguire le query SQL contenute in un file di testo. Questo è utileEseguire le query da un file di testo di Sante Caserio
Vai al tip

Se vogliamo fare il backup di tutti i database con mysqldump, e ne abbiamo parecchiFare il backup di tutti i database di Sante Caserio
Vai al tip

Salve, dopo tante storie ho studiato il php e mysql .. . che in questo forum parlavo php e campo mysql timestamp di gigi Vai al topic

ciao a tutti ho creato un forum su aruba ma non so come farlo visualizzare nel mio aruba di albertodiprima Vai al topic

Salve a tutti gente, questo è il mio primo post su questo forum e questo a causa Problema Gravissimo con AutoIncrement di stefanoadsl Vai al topic

Salve! Mi presento, mi chiamo Adriano e sono uno studente di ingegneria informatica Problema Trigger di Xanakro Vai al topic

Ciao a tutti!
Volevo chiedere una informazione.
Ho una query che lanciata la prima Query Eseguita più volte di OltreLeStelle Vai al topic