MariaDB

MariaDB è un RDBMS nato da un fork di MySQL creato dal programmatore originale di tale programma. Aperto ai contributi della comunità, l'area di sviluppo principale è lo storage engine Aria, precedentemente chiamato Maria da cui deriva MariaDB; si tratta di un'evoluzione di MyISAM. Viene…

MariaDB è un RDBMS nato da un fork di MySQL creato dal programmatore originale di tale programma. Aperto ai contributi della comunità, l'area di sviluppo principale è lo storage engine Aria, precedentemente chiamato Maria da cui deriva MariaDB; si tratta di un'evoluzione di MyISAM. Viene dedicata attenzione anche ai plugin.

Storia

MariaDB è nato nel 2009 come fork di MySQL. L'ideatore e responsabile del progetto è Michael "Monty" Widenius, il programmatore finlandese che ha iniziato e guidato per molti anni MySQL. Quando, all'inizio del 2008, la Sun Microsystems ha acquistato MySQL AB, Widenius si è trovato a disagio nella nuova situazione lavorativa, criticando la gestione dello sviluppo della versione 5.1 di MySQL.

Molti sviluppatori importanti avevano già lasciato il progetto MySQL per seguire Brian Aker nel suo fork Drizzle. In seguito all'annuncio dell'acquisizione della Sun da parte di Oracle, Widenius ha fondato il nuovo fork MariaDB e, per la sua gestione, ha avviato una nuova società chiamata Monty Program AB. Altri sviluppatori dipendenti della Sun lo hanno seguito.

Per attirare interesse attorno a MariaDB, oltre che per decentrare l'universo di MySQL rispetto alla Sun, Widenius ha lanciato la Open Database Alliance con Arjen Lentz, ex sviluppatore di MySQL che ha lasciato il progetto per fondare Open Query, e Peter Zaitsev, ex-core developer di MySQL che ha lasciato il progetto per fondare Percona.

La prima versione pubblicata, la 5.1.32, è dell'aprile 2009, disponibile solo per Linux. Pur rimanendo questa la sua piattaforma di riferimento, a partire dalla versione 5.1.38 dell'ottobre dello stesso anno è stata rilasciata anche per Windows. A partire dalla stessa versione è iniziata la distribuzione di pacchetti OurDelta, che già era disponibile per MySQL ma non più mantenuta.

Nel marzo 2013 gli sviluppatori della distribuzione Arch Linux hanno annunciato il passaggio da MySQL a MariaDB, seguendo le orme di Slackware.

Con la RHEL 7 del giugno 2014, anche Red Hat distribuisce nativamente MariaDB al posto di MySQL.

Nel dicembre 2012 è nata la MariaDB Foundation, allo scopo di garantire che MariaDB rimanga sempre un software libero, aperto al dialogo con la comunità e con una buona interoperabilità verso altri programmi.

Nel 2013 Monty Program Ab si è fusa con SkySQL, società di consulenza formata principalmente da ex-dipendenti di Oracle, Sun e MySQL Ab. La proprietà del marchio MariaDB è rimasta comunque alla MariaDB Foundation.

Versioni

MariaDB, fino alla versione 5.5, ha seguito gli stessi numeri di versione di MySQL. In questo modo chi utilizza MariaDB 5.5 sa che vi troverà le funzionalità di MySQL 5.5.

Ne è stata seguita la numerazione anche quando MySQL ha saltato alcuni numeri: per esempio quando MySQL è passato dalla versione 5.0 alla 5.5, le versioni MariaDB 5.1, 5.2 e 5.3 contenevano funzionalità specifiche del fork, ma non tutte le funzionalità di MySQL 5.5.

Dopo la versione 5.5, MariaDB ha deciso di passare al ramo 10. La decisione è stata presa per evidenziare il fatto che MariaDB non intende, per il momento, importare tutte le funzionalità di MySQL 5.6, alcune delle quali sono giudicate instabili, né reimplementarle. Tuttavia, poiché molte nuove funzionalità sono state implementate, il cambiamento nel numero di versione è sembrato opportuno.

Requisiti

MariaDB si compila sia su processori a 32 bit sia su processori a 64 bit.

È sviluppato principalmente per sistemi GNU/Linux: esistono pacchetti ufficiali rpm (per Red Hat e derivate, openSUSE) e deb (per Debian, Ubuntu e derivate). MariaDB è anche inclusa nei repository di diverse distribuzioni.

Vi sono poi pacchetti ufficiali per Solaris e BSD.

Anche per Windows esistono dei binari ufficiali, sia installabili sia portabili.

Differenze con MySQL

Le differenze più rilevanti tra MariaDB e MySQL indicate in una pagina apposita del sito ufficiale e nelle note di rilascio delle varie versioni pubbliche sono le seguenti:

Sono stati inclusi i seguenti storage engine:

Aria

XtraDB

PBXT

FedaratedX

SphinxSE

mroonga

OQGRAPH

CassandraSE

Lo storage engine NDB (ClusterDB) non è incluso in MariaDB.

Plugin:

HandlerSocket

PAM

Colonne virtuali.

Colonne dinamiche.

Sono stati implementati i pool di thread.

Sono stati corretti alcuni bug e alcuni warning dei compilatori.

Il codice di DBUG e l'istruzione CHECKSUM sono state rese più veloci, mentre alcune conversioni non necessarie dei set di caratteri sono state eliminate.

Il parser elimina dal piano di esecuzione le tabelle nominate ma non effettivamente utilizzate.

La precisione temporale di alcuni log è aumentata fino ai millisecondi.

Migliorate le statistiche utente.

MariaDB gestisce fino a trentadue segmenti di chiavi (non più sedici)

Progress Reporting

API non bloccante

il client ha un'opzione: abort-source-on-error

È stata estesa la tabella INFORMATION_SCHEMA.PLUGINS

È possibile per gli sviluppatori degli storage engine estendere il comando CREATE TABLE con opzioni personalizzate

Grazie a HandlerSocket, CassandraSE, LevelDB e le colonne dinamiche, MariaDB può essere usato come DBMS NoSQL.

Storage engine

MariaDB è distribuito con diversi storage engine, alcuni dei quali non possono funzionare con MySQL.

Aria

Il nome di questo storage engine inizialmente era Maria, ma successivamente è stato rinominato in Aria (togliendo solo l'iniziale) perché non si confondessero i nomi Maria e MariaDB.

Si tratta di un'evoluzione (ma non un vero e proprio fork) di MyISAM. Lo scopo del progetto è la realizzazione di uno storage engine performante quanto MyISAM ma che, opzionalmente, al prezzo di una lieve diminuzione delle prestazioni, possa gestire tabelle transazionali. Inoltre le tabelle di questo tipo sono virtualmente a prova di crash.

Aria viene utilizzata per le tabelle create internamente da MariaDB.

MyISAM è ancora presente in MariaDB.

Video: EsLibre 2023 P61 - Juan C. Sanz - ¿Si tengo MySQL o MariaDB para qué necesito LibreOffice Base? — German Martinez — CC BY-SA 4.0 — Wikimedia Commons

Servizi correlati

Altre voci

S

Scrum (informatica)

Scrum è un framework agile per la gestione del ciclo di sviluppo del software, iterativo ed incrementale, concepito per gestire progetti e prodotti software o applicazioni di sviluppo, creato e sviluppato da Ken Schwaber e Jeff Sutherland.

Leggi la voce →
D

Don't repeat yourself

In ingegneria del software, il principio don't repeat yourself ("non ripeterti"), spesso abbreviato in DRY e noto anche come "Single point of truth" ("singolo punto di verità") è un principio di progettazione e sviluppo software secondo cui andrebbe evitata ogni forma di ripetizione e ridondanza…

Leggi la voce →
Ansible (software)A

Ansible (software)

In informatica Ansible è un software libero che consente di automatizzare le procedure di configurazione e gestione sui sistemi unix-like e Windows (Il nome "Ansible" si riferisce ad un oggetto fantascientifico che consente di comunicare più velocemente della luce).

Leggi la voce →
A

Analisi (ingegneria del software)

In ingegneria del software, l'analisi è una delle fasi del ciclo di vita del software; essa ha lo scopo generale di chiarire, dettagliare e documentare le funzioni, i servizi e le prestazioni che devono essere offerti da un sistema software o programma, al fine di risolvere un dato problema nel…

Leggi la voce →
C

Caso di test

In ingegneria del software, un caso di test è un insieme di condizioni o variabili sotto le quali un tester determina se una applicazione o sistema software risponde correttamente o meno. Il meccanismo per determinare se un programma software o un sistema ha superato un test è conosciuto come…

Leggi la voce →
T

Tipizzazione statica

Nella teoria dei linguaggi di programmazione, la tipizzazione statica identifica una categoria di sistemi di tipi dove la verifica della compatibilità delle operazioni e l'assegnazione dei tipi a variabili, espressioni e funzioni avvengono già prima dell'esecuzione del programma, generalmente…

Leggi la voce →