Skip to main content

Hvad er eventuel konsistens?

Eventuel konsistens er en programmeringsmodel, hvor programmerere antager, at den aktuelle version af et bestemt program i en lang tid er konsekvent.Begrebet eventuel konsistens bruges i programmeringsmetoder såsom optimistisk replikation, distribueret delt hukommelse og distribuerede transaktioner.Med hensyn til databaser opnås eventuel konsistens gennem en tretrinsproces.For det første stilles de distribuerede oplysninger tilgængelige på systemet;Dette efterfølges af en blød tilstand, hvor forskellige brugere stadig arbejder med forskellige versioner af dataene;og til sidst opnås konsistens, og alle computere har adgang til identiske data.

En af de mest synlige måder, eventuel konsistens anvendes, har at gøre med softwareopdateringer, der er distribueret online.I de første par sekunder efter en opdatering er frigivet, vil ingen have det;Der er ikke gået nok tid til brugere af softwaren til at downloade og installere opdateringen.Dette er den tilgængelige tilstand;Opdateringen findes, men er endnu ikke blevet distribueret.Med tiden, når brugerne downloader opdateringen, vil nogle have den, og nogle vil ikke.Efter at der er gået nok tid, vil alle, der bruger softwaren, have opdateret til den nyeste version.Dette er forudsætningen bag staten for eventuel konsistens: Givet nok tid vil enhver opdatering fuldt ud forplantes i hele systemet.

Da systemet fungerer mod eventuel konsistens, er konflikter uundgåelige.Disse forekommer, når programversionen eller informationen, der i øjeblikket er på computeren, ikke matcher modelversionen af programmet.Programmer er normalt oprettet til at anerkende sådanne konflikter og styre dem.Når filerne på en bestemt computer er ældre end den nyeste modelversion af den pågældende software eller data, vil systemet normalt bede brugeren om at starte en opdatering for at løse forskellen.

Tre mulige metoder er tilgængelige for at påvirke disse opløsninger: Skriv reparation, læse reparation og asynkron reparation.Disse metoder bringer alle versionen af programmet eller data i overensstemmelse med den konsistente model.Den vigtigste forskel mellem disse har at gøre med den måde, hvorpå systemet gange reparerer operationen.Alle sådanne operationer har fordele og ulemper.

I en skrivereparation foretages ændringer i koden, der er gemt på computeren, under en skriveoperation, når computeren allerede skriver noget til systemets harddisk.Dette reparerer inkonsekvensen og bringer programmet eller dataene i overensstemmelse med modellen, men det bremser også midlertidigt den originale skriveoperation.For en læse -reparation forekommer den korrigerende operation under en læsecyklus fra harddisken.Dette bremser igen læsningsoperationen.I asynkron reparation finder reparationen sted, når hverken en læsning eller skriveoperation forekommer, hvilket fører til forbrug af tomgangscyklusser på CPU'en.