Skip to main content

Hva er eventuell konsistens?

Eventuell konsistens er en programmeringsmodell der programmerere antar at over en lang nok periode og uten endringer i et system, vil den nåværende versjonen av et bestemt program til slutt distribuere til hver kopi av programmet er konsistent.Konseptet med eventuell konsistens brukes i programmeringsmetoder som optimistisk replikasjon, distribuert delt minne og distribuerte transaksjoner.Når det gjelder databaser, oppnås eventuell konsistens gjennom en tretrinnsprosess.Først blir den distribuerte informasjonen gjort tilgjengelig på systemet;Dette blir fulgt av en myk tilstand, der forskjellige brukere fremdeles kan jobbe med forskjellige versjoner av dataene;og til slutt oppnås konsistens, og alle datamaskiner har tilgang til identiske data.

En av de mest synlige måtene eventuell konsistens brukes har å gjøre med programvareoppdateringer distribuert på nettet.De første sekundene etter at en oppdatering er utgitt, vil ingen ha det;Ikke nok tid har gått for brukere av programvaren til å laste ned og installere oppdateringen.Dette er den tilgjengelige tilstanden;Oppdateringen eksisterer, men har ennå ikke blitt distribuert.Over tid, når brukere laster ned oppdateringen, vil noen ha den og noen ikke vil.Etter at nok tid har gått, vil imidlertid alle som bruker programvaren ha oppdatert til den nyeste versjonen.Dette er forutsetningen bak tilstanden til eventuell konsistens: gitt nok tid, vil enhver oppdatering forplante seg fullt ut i hele systemet.

Når systemet fungerer mot eventuell konsistens, er konflikter uunngåelige.Disse oppstår når programversjonen eller informasjonen som for øyeblikket er på datamaskinen, ikke samsvarer med modellversjonen av programmet.Programmer er vanligvis satt opp for å gjenkjenne slike konflikter og administrere dem.Når filene på en spesifikk datamaskin er eldre enn den nyeste modellversjonen av programvaren eller dataene det gjelder, vil systemet vanligvis be brukeren om å sette i gang en oppdatering for å løse forskjellen.

Tre mulige metoder er tilgjengelige for å utføre disse oppløsningene: Skriv reparasjon, lese reparasjon og asynkron reparasjon.Disse metodene bringer alle versjonen av programmet eller dataene i tråd med den konsistente modellen.Den viktigste forskjellen mellom disse har å gjøre med måten systemet er på reparasjonsoperasjonen.Alle slike operasjoner har fordeler og ulemper.

I en skrivereparasjon blir endringer i koden som er lagret på datamaskinen gjort under en skriveoperasjon, når datamaskinen allerede skriver noe til systemets harddisk.Dette reparerer inkonsekvensen, og bringer programmet eller dataene i tråd med modellen, men det bremser også den opprinnelige skriveoperasjonen midlertidig.For en lesereparasjon skjer den korrigerende operasjonen under en lesesyklus fra harddisken.Dette bremser på sin side leste operasjonen.Ved asynkron reparasjon skjer reparasjonen når verken en lesning eller skriveoperasjon oppstår, noe som fører til forbruk av ledige sykluser på CPU.