Wetenschap
Om atomiciteit en atomaire scopes te begrijpen, kunt u de volgende, niet-atomaire, reeks bewerkingen overwegen om het banksaldo van een gebruiker te wijzigen:
1. Lees het saldo van de bank af.
2. Trek het transactiebedrag van het saldo af.
3. Schrijf het saldo terug naar de bank.
Om deze bewerkingen te laten slagen, moet de database tussen het lezen en schrijven worden vergrendeld, omdat er anders tussen deze twee bewerkingen een andere transactie naar de database kan schrijven. Bovendien, als er iets misgaat tijdens de transactie (bijvoorbeeld als de database offline gaat tijdens de schrijfbewerking), moet de bewerking volledig mislukken en moet de database worden hersteld in de staat waarin deze zich bevond voordat de transactie begon.
Bij atomiciteit gedraagt de reeks bewerkingen zich als één enkele bewerking, of mislukt deze geheel. Dat wil zeggen, de code om een bepaalde bewerking uit te voeren is ingesloten in een *atomaire scope*, en als een bewerking in de reeks mislukt, wordt de hele transactie teruggedraaid, alsof geen van de bewerkingen in de reeks ooit heeft plaatsgevonden.
Een atomaire scope garandeert:
1. Als geen enkele bewerking in het bereik mislukt, vinden alle bewerkingen plaats;
2. Als een bewerking binnen het bereik mislukt, vindt geen van de bewerkingen plaats; En
3. Als een bewerking begint te mislukken, worden alle bewerkingen die al hebben plaatsgevonden onmiddellijk teruggedraaid, waardoor het systeem wordt hersteld naar de staat voordat een van de bewerkingen begon.
Wetenschap © https://nl.scienceaq.com