Skip to main content

Wat is uiteindelijke consistentie?

Eventuele consistentie is een programmeermodel waarin programmeurs veronderstellen dat de huidige versie van een bepaald programma uiteindelijk zal distribueren totdat elke replica van het programma gedurende een lang genoeg tijdstip van tijd en zonder wijzigingen in een systeem zal distribueren.Het concept van uiteindelijke consistentie wordt gebruikt bij programmeermethoden zoals optimistische replicatie, gedistribueerd gedeeld geheugen en gedistribueerde transacties.Wat databases betreft, wordt uiteindelijk consistentie bereikt via een driestapsproces.Eerst wordt de gedistribueerde informatie beschikbaar gesteld op het systeem;Dit wordt gevolgd door een zachte toestand, waarin verschillende gebruikers mogelijk nog steeds met verschillende versies van de gegevens werken;en uiteindelijk wordt consistentie bereikt en alle computers hebben toegang tot identieke gegevens.

Een van de meest zichtbare manieren waarop eventuele consistentie wordt toegepast, heeft te maken met software -updates die online worden gedistribueerd.Gedurende de eerste paar seconden nadat een update is vrijgegeven, zal niemand deze hebben;Er is niet genoeg tijd verstreken voor gebruikers van de software om de update te downloaden en te installeren.Dit is de beschikbare staat;De update bestaat, maar moet nog worden gedistribueerd.Na verloop van tijd, terwijl gebruikers de update downloaden, zullen sommigen deze hebben en sommige niet.Nadat voldoende tijd is verstreken, is iedereen die de software gebruikt, echter bijgewerkt naar de nieuwste versie.Dit is het uitgangspunt achter de stand van de uiteindelijke consistentie: gezien voldoende tijd, zal elke update zich volledig verspreiden in het hele systeem.

Aangezien het systeem werkt aan eventuele consistentie, zijn conflicten onvermijdelijk.Deze komen voor wanneer de programmafersie of informatie die momenteel op de computer is, niet overeenkomt met de modelversie van het programma.Programma's worden meestal opgezet om dergelijke conflicten te herkennen en te beheren.Wanneer de bestanden op een specifieke computer ouder zijn dan de nieuwste modelversie van de betreffende software of gegevens, zal het systeem meestal de gebruiker ertoe aanzetten een update te starten om de ongelijkheid op te lossen.

Er zijn drie mogelijke methoden beschikbaar om deze resoluties te bewerkstelligen: schrijfreparatie, leesreparatie en asynchrone reparatie.Deze methoden brengen allemaal de versie van het programma of gegevens in overeenstemming met het consistente model.Het belangrijkste verschil tussen deze heeft te maken met de manier waarop het systeem de reparatiewerkzaamheden maalt.Al dergelijke bewerkingen hebben voordelen en nadelen.

In een schrijfreparatie worden wijzigingen in de code die op de computer is opgeslagen, aangebracht tijdens een schrijfbewerking, wanneer de computer al iets naar de harde schijf van de systemen schrijft.Dit herstelt de inconsistentie, waardoor het programma of de gegevens in overeenstemming zijn met het model, maar het vertraagt ook tijdelijk de oorspronkelijke schrijfbewerking.Voor een leesreparatie vindt de corrigerende bewerking plaats tijdens een leescyclus van de harde schijf.Dit vertraagt op zijn beurt de leesbewerking.In asynchrone reparatie vindt de reparatie plaats wanneer noch een leesbewerking optreedt, wat leidt tot het verbruik van inactieve cycli op de CPU.