Visszahivasos replikaco
Mivel kommunikacio idobe kerul ezert elofordulhat hogy egy node az elavult allapottal dolgozik. Ez azt is jelentheti hogy nem megfelelo dontest hoz, vagy azt hogy a valtoztatasait egy masik node-rol szarmazo korabbi valtozas irja felul. Ennek elkerulesere ket megoldasi lehetoseg letezik: az egyik a zarolas, a masik pedig a visszavonas.
A zarolas kizarja hogy egyszerre tobb node hajtson vegre valtozatst ugyanazon az objektumon, ugy hogy egyszerre csak egy node kap engedelyt a valtoztatasra, a tobbiek pedig varakozasra kenyszerulnek. Ez szamunkra tobb okbol is elfogadhatatlan: Az a node amelyik a zarolast vegzi kozponti elemme valik, a halozati kesletetes keslelteti a feldolgozast, a kesleltetes a resztvevok szamval aranyosan no.
A zarolasos modszer a fent vazolt nemkivanatos tulajdonsagai miatt a visszahivason alapulo megoldast valasztottam.
Ennek lenyege hogy minden valtozas egy idobelyeggel van ellatva, amelynek alapjan eldontheto hogy melyik valtozas tortent idoben elobb. Ilyenkor nem kell a zarolasi kerelmekre varakozni. Minden valtozas azonnal vegrehajthato, es a vegrehajtas pillanataban indul egy uzenet amely a tobbi node-ot a valtozasrol tajekoztatja. Ez ugyan kesve erkezik a tobbi node-hoz, de meg mindig joval kevesebb ido alatt mint amennyi ideo zarolashoz szukseges uzenetvaltashoz szukseges. Ez alatt az ido alatt az a tobbi replika elavult allapotban van. Leteznek azonban olyan valtozasok amelyek az aktualis allapottol fuggnek. Ha egy ilyen valtozas egy elavult replikan halytodik vegre akkor az rossz eredmenyt ad. Arrol a tenyrol hogy egy valtoztatas egy elavult replikan tortent csak utolag ertesulunk. Ekkor szukseges a valtozas visszahivasa. Ez tobbnyire csupan annyit jelent hogy a helyes allapot birtokaban kiszamitjuk a helyes valotzatatast, es ezzel felulirjuk az aktualis allapotot. Ez termeszetesen minden rossz valtozasra megtesszuk, sot a minden olyan szamitasra meg kell tennunk amelyben ezt a rossz alapotot felhasznaltuk. Ennek megvalositasara valo az un. idovonal.
Blueprint information
- Status:
- Not started
- Approver:
- None
- Priority:
- Undefined
- Drafter:
- None
- Direction:
- Needs approval
- Assignee:
- None
- Definition:
- Pending Approval
- Series goal:
- None
- Implementation:
-
Unknown
- Milestone target:
- None
- Started by
- Completed by