Wat is ACID Compliance?
De aanwezigheid van vier componenten – atomiciteit, consistentie, isolatie en duurzaamheid – kan ervoor zorgen dat een database transactie op tijd wordt voltooid. Wanneer databases deze componenten bezitten, wordt gezegd dat ze ACID-compliant zijn. Maar wat is ACID-compliantie nu precies, en waarom zou je je er druk om maken? Laten we eens kijken:
Atomiciteit: Database transacties kunnen, net als atomen, worden opgesplitst in kleinere delen. Als het om uw database gaat, verwijst atomiciteit naar de integriteit van de hele databasetransactie, niet slechts van een onderdeel ervan. Met andere woorden, als een deel van een transactie niet werkt zoals het hoort, zal het andere deel falen, en vice versa. Als u bijvoorbeeld winkelt op een e-commercesite, moet u een artikel in uw winkelwagentje hebben om ervoor te kunnen betalen. Wat u niet kunt doen, is betalen voor iets dat niet in uw winkelwagen zit. (Je kunt iets in je winkelwagentje leggen en er niet voor betalen, maar die databasetransactie is pas compleet, en dus niet ‘atomair’, als je ervoor betaalt).
Consistentie: Om een database te laten werken zoals hij bedoeld is te werken, moet hij de juiste regels voor gegevensvalidatie volgen. Consistentie betekent dus dat alleen gegevens die aan die regels voldoen, in de database mogen worden geschreven. Als er een transactie plaatsvindt die gegevens oplevert die niet aan de regels van de database voldoen, wordt deze “teruggedraaid” naar een vorige iteratie van zichzelf (of “toestand”) die wel aan de regels voldoet. Anderzijds worden na een geslaagde transactie nieuwe gegevens aan de database toegevoegd en is de resulterende toestand in overeenstemming met de bestaande regels.
Isolatie: Het is veilig om te zeggen dat er op elk gegeven moment op Amazon veel meer dan één transactie plaatsvindt op het platform. In feite vinden er ongelooflijk veel databasetransacties tegelijk plaats. Voor een database verwijst isolatie naar de mogelijkheid om gelijktijdig meerdere transacties te verwerken op een manier dat de ene de andere niet beïnvloedt. Dus stel je voor dat jij en je buurman tegelijkertijd iets proberen te kopen op hetzelfde e-commerce platform. Er zijn 10 artikelen te koop: je buurman wil er vijf en jij zes. Isolatie betekent dat een van die transacties eerder zou worden voltooid dan de andere. Met andere woorden, als je buurman eerst klikt, krijgt hij vijf artikelen, en zijn er nog maar vijf artikelen in voorraad. Dus u kunt maar vijf artikelen kopen. Als jij eerst klikt, krijg jij de zes artikelen die je wilt hebben, en zij maar vier. Isolatie zorgt er dus voor dat er geen elf artikelen worden verkocht terwijl er maar tien zijn.
Duurzaamheid: Alle technologie faalt van tijd tot tijd… het doel is om die mislukkingen onzichtbaar te maken voor de eindgebruiker. In databases die duurzaam zijn, worden gegevens bewaard zodra een transactie is voltooid, zelfs als de stroom uitvalt of het systeem uitvalt. Stel je voor dat je concertkaartjes koopt op een site die vergelijkbaar is met Ticketmaster.com. Op het moment dat de tickets in de verkoop gaan, bent u klaar om een aankoop te doen. Na enige tijd in de digitale wachtkamer te hebben gezeten, kunt u eindelijk de kaartjes aan uw winkelwagentje toevoegen. Vervolgens doe je de aankoop en krijg je een bevestiging. Maar als die database niet duurzaam is, gaat je transactie zelfs na de bevestiging van je ticketaankoop verloren als er een storing in de database optreedt! Zoals u zou verwachten, is dit een zeer slechte zaak om te gebeuren voor een online e-commerce site, dus transactie duurzaamheid is een must-have.
ClustrixDB, een NewSQL cloud database, nu een onderdeel van MariaDB komt met het extra voordeel van ACID compliance, van cruciaal belang voor succes!