Unread Marks - 3
Novinky
26.05.2004 - Miroslav Uhlár
Synchronizáciu UT si demonštrujeme na príklade, keď používateľ pristupuje k replikám aplikácie na dvoch serveroch (A1, A2).
Chronologický sled udalostí:
Krok
Používateľ
UJ (Klient)
UT (A1)
UT (A2)
1.
Otvorí databázu A1
2.
Prečíta dokument D1
Doplní sa záznam o prečítaní D1
Odstráni sa D1 zo zoznamu nečítaných
3.
Otvorí databázu A2
Aktualizuje sa podľa UJ, teda odstráni sa D1 zo zoznamu nečítaných
4.
Označí D1 ako nečítaný
Doplní sa záznam o neprečítaní D1
Doplní sa D1 do zoznamu nečítaných
5.
Otvorí databázu A1
Aktualizuje sa podľa UJ, teda doplní sa D1 do zoznamu nečítaných
Obsah jednotlivých komponentov:
Krok
Používateľ
UJ (Klient)
UT (A1)
UT (A2)
1.
Otvorí databázu A1
...
...
D1
D2
...
...
D1
D2
...
2.
Prečíta dokument D1
... D1 - Read
...
... D1
D2
...
...
D1
D2
...
3.
Otvorí databázu A2
...
D1 - Read
...
... D1
D2
...
... D1
D2
...
4.
Označí D1 ako nečítaný
...
D1 - Read D1 - Unread
...
... D1
D2
...
... D1
D2
...
5.
Otvorí databázu A1
...
D1 - Read
D1 - Unread
...
... D1
D2
...
... D1
D2
...
Popisovaný mechanizmus je síce trošku komplikovaný, no zdá sa pre distribuované prostredie funkčný. Bohužiaľ, zdanie klame. Existujú reprodukovateľné situácie, kedy synchronizácia zlyháva. Bližšie už v nasledujúcej kapitole.