Mis on lõplik järjepidevus?

Lõplik järjepidevus on programmeerimismudel, mille puhul programmeerijad eeldavad, et piisavalt pika aja jooksul ja ilma süsteemi muutmata levib konkreetse programmi praegune versioon lõpuks, kuni programmi iga koopia on järjepidev. Lõpliku järjepidevuse kontseptsiooni kasutatakse programmeerimismeetodites, nagu optimistlik replikatsioon, hajutatud ühismälu ja hajutatud tehingud. Andmebaaside osas saavutatakse lõplik järjepidevus kolmeetapilise protsessi kaudu. Esiteks tehakse levitatud teave süsteemis kättesaadavaks; sellele järgneb pehme olek, kus erinevad kasutajad võivad siiski töötada andmete erinevate versioonidega; ja lõpuks saavutatakse järjepidevus ning kõigil arvutitel on juurdepääs identsetele andmetele.

Üks nähtavamaid viise võimaliku järjepidevuse rakendamiseks on seotud võrgus levitatavate tarkvaravärskendustega. Esimeste sekundite jooksul pärast värskenduse avaldamist pole seda kellelgi käes; tarkvara kasutajatel pole värskenduse allalaadimiseks ja installimiseks möödunud piisavalt aega. See on “saadaval” olek; värskendus on olemas, kuid seda pole veel levitatud. Aja jooksul, kui kasutajad värskenduse alla laadivad, on mõnel see olemas ja mõnel mitte. Pärast piisava aja möödumist on kõik tarkvara kasutajad värskendanud uusimale versioonile. See on lõpliku järjepidevuse oleku eeldus: piisava aja olemasolul levib iga värskendus täielikult kogu süsteemis.

Kuna süsteem töötab lõpliku järjepidevuse poole, on konfliktid vältimatud. Need ilmnevad siis, kui arvutis olev programmi versioon või teave ei ühti programmi mudeliversiooniga. Programmid on tavaliselt seadistatud selliste konfliktide äratundmiseks ja nende haldamiseks. Kui konkreetses arvutis olevad failid on vanemad kui kõnealuse tarkvara või andmete uusim mudeliversioon, palub süsteem tavaliselt kasutajal algatada erinevuse lahendamiseks värskenduse.

Nende eraldusvõime saavutamiseks on saadaval kolm võimalikku meetodit: kirjutamise parandamine, lugemise parandamine ja asünkroonne parandamine. Kõik need meetodid viivad programmi või andmete versiooni järjepideva mudeliga kooskõlla. Peamine erinevus nende vahel on seotud viisiga, kuidas süsteem kordab remondioperatsiooni. Kõigil sellistel toimingutel on oma eelised ja puudused.

Kirjutamisremondis tehakse muudatused arvutisse salvestatud koodis kirjutamisoperatsiooni käigus, kui arvuti juba kirjutab midagi süsteemi kõvakettale. See parandab ebakõla, viies programmi või andmed mudeliga kooskõlla, kuid aeglustab ajutiselt ka algset kirjutamistoimingut. Lugemise parandamiseks tehakse parandustoiming kõvakettalt lugemistsükli ajal. See omakorda aeglustab lugemist. Asünkroonse remondi korral toimub remont siis, kui lugemis- ega kirjutamistoimingut ei toimu, mis põhjustab protsessori jõudeoleku tsüklite tarbimist.