Wat is uiteindelijk 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 tijdsperiode en zonder wijzigingen in een systeem en zonder wijzigingen in een systeem worden gedistribueerd. 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 ten slotte wordt consistentie bereikt en alle computers hebben toegang tot identieke gegevens.

Een van de meest zichtbare manieren waarop uiteindelijke 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; Niet genoeg tiIk is overleden 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.

Omdat het systeem werkt aan de uiteindelijke consistentie, zijn conflicten onvermijdelijk. Deze vinden plaats wanneer de programmavoorversie of informatie die momenteel op de computer ligt, 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 vragende gebruiker om een ​​update te starten om de ongelijkheid op te lossen.

Er zijn drie mogelijke methoden beschikbaar om deze resoluties te bewerkstelligen: schrijf reparatie, 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 op de computer opgeslagen code aangebracht tijdens een schrijfbewerking, wanneer de computer al iets naar de harde schijf van het systeem 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 plaatsvindt, wat leidt naar de CONsumption van inactieve cycli op de CPU.

ANDERE TALEN