Vad är eventuell konsistens?
Eventuell konsistens är en programmeringsmodell där programmerare antar att under en tillräckligt lång tid och utan ändringar i ett system kommer den nuvarande versionen av ett visst program så småningom att distribuera tills varje kopia av programmet är konsekvent. Begreppet eventuell konsistens används i programmeringsmetoder som optimistisk replikering, distribuerat delat minne och distribuerade transaktioner. När det gäller databaser uppnås eventuell konsistens genom en trestegsprocess. Först görs den distribuerade informationen tillgänglig på systemet; Detta följs av ett mjukt tillstånd, där olika användare fortfarande kan arbeta med olika versioner av data; och slutligen uppnås konsistens, och alla datorer har tillgång till identiska data.
Ett av de mest synliga sätten att eventuell konsistens tillämpas har att göra med mjukvaruuppdateringar distribuerade online. Under de första sekunderna efter att en uppdatering har släppts kommer ingen att ha det; inte tillräckligt tiJag har gått för användare av programvaran att ladda ner och installera uppdateringen. Detta är det "tillgängliga" tillståndet; Uppdateringen finns, men har ännu inte distribuerats. Med tiden, när användare laddar ner uppdateringen, kommer vissa att ha den och vissa kommer inte. Efter att tillräckligt med tid har gått har dock alla som använder programvaran uppdaterat till den senaste versionen. Detta är förutsättningen bakom tillståndet för eventuell konsistens: med tanke på tillräckligt med tid kommer varje uppdatering att spridas fullt ut i hela systemet.
Eftersom systemet fungerar för eventuell konsistens är konflikter oundvikliga. Dessa inträffar när programversionen eller informationen för närvarande på datorn inte matchar "modellversionen" av programmet. Program inrättas vanligtvis för att känna igen sådana konflikter och hantera dem. När filerna på en specifik dator är äldre än den senaste modellversionen av programvaran eller data i fråga kommer systemet vanligtvis att uppmanasanvändaren för att initiera en uppdatering för att lösa skillnaden.
Tre möjliga metoder är tillgängliga för att genomföra dessa upplösningar: Skriv reparation, läsreparation och asynkron reparation. Dessa metoder ger alla versionen av programmet eller data i linje med den konsekventa modellen. Den viktigaste skillnaden mellan dessa har att göra med det sätt på vilket systemet gånger reparationsoperationen. Alla sådana operationer har fördelar och nackdelar.
I en skrivreparation görs ändringar av koden som lagras på datorn under en skrivoperation, när datorn redan skriver något till systemets hårddisk. Detta reparerar inkonsekvensen, vilket ger programmet eller data i linje med modellen, men det bromsar också tillfälligt den ursprungliga skrivoperationen. För en läsreparation sker den korrigerande operationen under en läscykel från hårddisken. Detta i sin tur bromsar läsoperationen. Vid asynkron reparation sker reparationen när varken en läsning eller skrivoperation inträffar, vilket leder till COnsumption av tomgångscykler på CPU.