Eén van de technieken die Shock Media toepast om uitval op te vangen binnen kritieke omgevingen is Galera. Galera wordt in combinatie met MySQL gebruikt bij databases en maakt het mogelijk om meerdere MySQL-servers te clusteren. Alle MySQL-servers binnen zo’n cluster maken gebruik van exact dezelfde data. Tevens worden aanpassingen van data in het cluster continu gesynchroniseerd naar andere servers binnen het cluster. Hierbij kan elke server binnen dit cluster aanpassingen maken aan de data, een zogenoemd 'Multi-Master Cluster'.
De meeste applicaties welke gebruik maken van MySQL zullen geen of weinig aanpassingen nodig hebben om te draaien op een Galera-cluster. Dit komt doordat elke server in het cluster gebruikt kan worden om beschreven en gelezen te worden. Doordat er geen of weinig aanpassingen vereist zijn is het voor klanten slechts een kleine stap om door te groeien naar een Galera-opstelling, welke de zekerheid biedt dat de uitval van een MySQL-server niet meer tot uitval van de applicatie zal leiden.
Hoe werkt Galera?
In grote lijnen werkt Galera op basis van datareplicatie van servers binnen een cluster, waarbij de data van het cluster continu gesynchroniseerd wordt tussen alle nodes. Wanneer er op één server data wordt toegevoegd of gewijzigd middels een MySQL-query zorgt dit voor wijzigingen van data op het gehele cluster. Galera zorgt ervoor dat wijzigingen van data worden verspreid over alle andere servers. Hierdoor werken alle servers constant met dezelfde data.

Overlap van data
Bij het schrijven van data door meerdere servers tegelijk en het continu tegelijk synchroniseren van deze data over de servers, kijkt Galera of de schrijfacties elkaar in de weg zitten waardoor er een 'lock' ontstaat.
- Mocht er geen overlap van data zijn, dan zullen de schrijfacties gelijktijdig uitgevoerd worden en zal het cluster de rest van de servers op basis van deze wijzigingen weer gelijk maken met de data op het cluster.
- Mocht er wel overlap zijn, dan wordt één schrijfactie in de wacht gezet tot de andere schrijfactie voltooid. Vervolgens wordt de query opnieuw uitgevoerd. Galera gaat heel slim om met datawijzigingen, zodat deze ‘locks’ en het in de wacht zetten zo veel mogelijk worden voorkomen.
Vereisten
In een enkele MySQL-server komen locks ook voor, echter binnen een Galera-opstelling kunnen ‘locks’ in meer situaties voorkomen. Hierdoor is het mogelijk dat er aanpassingen zijn vereist in de afhandeling van queries en deze moeten worden doorgevoerd in sommige applicaties. Een andere vereiste voor de applicatie is dat alle tabellen welke gesynchroniseerd moeten worden binnen het cluster gebruik moeten maken van InnoDB.
Galera bij Shock Media
Shock Media is uiterst ervaren op het gebied van Galera en veel opdrachtgevers maken dan ook al gebruik van een Galera-opstelling voor de database infrastructuur. De omgevingen welke gebruik maken van Galera variëren van grote Magento-webshops en Wordpress-installaties tot volledige maatwerk (web)applicaties. Ook veel van onze eigen interne systemen maken al jaren gebruik van een Galera-opstelling. Hierbij is gekozen om de opstelling over 4 geografisch gescheiden locaties op te zetten. Hierbij wordt data continu gesynchroniseerd en heeft eventuele uitval van één of zelfs meerdere locaties geen invloed op de beschikbaarheid van de interne systemen die nodig zijn om onze werkzaamheden te kunnen verrichten.