MariaDB is een drop-in replacement voor MySQL. Na de overname van MySQL door Sun en daarna door Oracle's overname van Sun, wordt deze versie door velen gezien als een product dat meer dan MySQL zelf trouw blijft aan de oorspronkelijke open source gedachte waaruit MySQL is ontstaan. Tijd dus om MariaDB eens onder de loep te nemen om te zien wat de overeenkomsten en verschillen zijn met MySQL, en welk toekomstperspectief MariaDB biedt voor MySQL-gebruikers.

MariaDB is een open source RDBMS die net als MySQL beschikbaar is onder de voorwaarden van versie 2 van de GNU Public License (GPLv2). Het product wordt grotendeels ontwikkeld en onderhouden door het Finse bedrijf Monty Program AB, dat begin februari 2009 (niet al te lang na de overname van MySQL AB door Sun Microsystems) werd opgericht door MySQL founder Michael "Monty" Widenius. Inmiddels heeft een niet onbelangrijk deel van de MySQL core developers de overstap gemaakt van Oracle naar Monty Program AB. Dat is natuurlijk een eerste vereiste om een MySQL fork duurzaam te ontwikkelen.

Patches uit de gemeenschap

MariaDB is ontstaan door een aantal toevoegingen en wijzigingen (patches) die uit de MySQL community zijn voortgekomen. Daaronder zitten een aantal patches die van Google afkomstig zijn, en die replicatie en de schaalbaarheid van MySQL op systemen met multi-core CPU's moeten verbeteren. Die patches zijn gemaakt om toegepast te worden op de broncode van de mainstream MySQL 5.1. release. Inmiddels zijn deze “Google-patches” ook aanbeland in de development versie (5.5) van mainstream MySQL, maar het duurde erg lang voor het zover kwam, tot grote ontevredenheid van de MySQL community.

MariaDB nu wil zich juist van MySQL onderscheiden door de drempel te verlagen voor community patches, en ook door aangeboden patches sneller te integreren. Maar tegelijkertijd is het de bedoeling om compatibel te blijven met mainstream MySQL, zodat MySQL gebruikers zonder aanpassingen aan hun database applicaties kunnen overstappen op MariaDB. Dit laatste nu is een belangrijk verschil met de tweede belangrijke MySQL fork, drizzle (die overigens eveneens afgelopen week een release aankondigde, te weten drizzle 7, de eerste drizzle beta release)

Verschillen met MySQL

Wat zijn vanuit de gebruiker gezien nu eigenlijk de belangrijkste verschillen tussen MySQL 5.5 en MariaDB? Wat het eerste opvalt is dat MariaDB een grotere keuze aan storage engines biedt. (Storage engine is de MySQL specifieke term voor een component die de eigenlijke data opslag van database tabellen verzorgt.) De volgende lijst geeft een indruk van engines die in MariaDB zitten:

  • * De Aria storage engine. Dit is een verbeterde crash-safe versie van de oorspronkelijke MyISAM engine. De oorspronkelijke MyISAM engine is ook nog steeds beschikbaar
  • * De XtraDB storage engine. Dit is een fork van de InnoDB engine aanwezig in MySQL.
  • * De PrimeBase storage engine (PBXT). Deze engine combineert features bekend uit de InnoDB engine, zoals transacties en foreign key constraints met de performance van de MyISAM engine.
  • * FederatedX: een actief onderhouden fork van de Federated engine, die aanwezig is in MySQL, maar niet meer onderhouden wordt.

Specifiek voor MariaDB

Laten we nu eens kijken naar enkele nieuwe MariaDB 5.2.2 specifieke features:

  • * Virtual Columns: een virtual column is een kolom waarvan de waarde niet opgeslagen is, maar on-the-fly wordt berekend.
  • * Extended User Statistics: meer en meer fijmazige informatie over het gebruik van systeemresources waardoor betere monitoring mogelijk wordt.
  • * MyISAM performance verbeteringen. Door een aanpassing in de in-memory index cache kan tot 70% betere performance worden bereikt in high-concurrency scenarios
  • * Pluggable authentication: de component waarmee gebruikers worden aangemeld is nu inplugbaar, waardoor zaken zoals bijvoorbeeld LDAP authenticatie mogelijk worden.
  • * Meer mogelijkheden om storage-engine specifieke opties te specificeren bij het aanmaken van tabellen
  • * De QGRAPH storage engine. Deze engine is speciaal toegesneden op het opslaan van netwerk- en boomstructuren. Dit is vooral van belang voor zaken als social network sites.
  • * Sphinx client. Sphinx is een fulltext search engine, en via deze toevoeging kunnen sphinx resultaten direct in de database gebruikt worden.

Blijf MariaDB volgen

Al met al kunnen we concluderen dat MariaDB een interessant alternatief vormt voor MySQL. Enerzijds biedt MariaDB zelf een aantal nieuwe features die voor bepaalde toepassingen weleens de doorslag kunnen geven om daadwerkelijk over te stappen. Anderzijds zet de policy om snel community patches door te voeren Oracle onder druk om niet achter te blijven en MySQL te (blijven) innoveren. De slotconclusie moet dan ook zijn dat het verstandig is voor iedereen die MySQL op enige schaal gebruikt om MariaDB te blijven volgen. Bovendien is het zeker de moeite waard om MariaDB actief te evalueren in het geval je tegen specifieke problemen aanloopt met mainstream MySQL.

Bron: Techworld