next up previous
Next: Określenie optymalnej ziarnistości schowka. Up: Opis systemu Previous: Zarządzanie schowkiem.

Spójność danych.

W czasie gdy klient i serwery mogą bez przeszkód się komunikować, algorytmy zachowujące spójność danych są bardzo podobne do zastosowanych w systemie AFS. Wykorzystuje się mechanizm wywołania zwrotnego.

System Coda zakłada jednak, że klient może pozostawać odłączony od sieci przez bardzo długi czas. Ponadto umożliwia mu on modyfikacje danych, symulując wykonywanie operacji na serwerze. Powoduje to oczywiście, że problem uspójnienia danych w momencie uzyskania komunikacji z serwerem jest jeszcze trudniejszy niż w przypadku typowego rozproszonego systemu plików. Możliwy długi czas pracy w trybie bezsieciowym powoduje, że:

  1. zwiększa się prawdopodobieństwo, że dwóch lub więcej różnych klientów zmodyfikuje ten sam plik,
  2. po uzyskaniu połączenia z serwerem wszystkie dane w schowku mogły stać się nieaktualne. Muszą być poddane procesowi walidacji, który bardzo obciąża sieć generując wiele komunikatów kontrolnych.
Problem z punktu pierwszego jest częściowo rozwiązany przez zastosowanie dostosowanych to potrzeb konkretnych aplikacji algorytmów ASR (ang. application-specific resolvers) uspójniających pliki konkretnego typu. Automatyczne uspójnienie danych zawierających np. kalendarze terminów spotkań mają duże szanse powodzenia. Jednak w większości przypadków utworzenie ASR jest bardzo trudne. W takich przypadkach system zgłasza użytkownikowi fakt pojawienia się nierozwiązywalnej przez system niespójności, którą trzeba ręcznie naprawiać. Może do dość mocno angażować użytkownika w celu zapewnienia poprawnego działania systemu.

Rozwiązaniem drugiego problemu jest zastosowanie różnego poziomu ziarnistości schowka. System Coda wprowadza w tym celu pojęcie wolumenów. Wolumeny są to zbiory plików, których aktualność może zostać sprawdzona z pomocą jednego komunikatu. Modyfikacja dowolnego pliku, znajdującego się w wolumenie, zwiększa numer wersji wolumenu. W momencie, gdy klient chce sprawdzić, czy plik lub grupa plików jest aktualna, może to zrobić, sprawdzając czy jego numer wersji wolumenu jest taki sam, jak na serwerze. Jeżeli tak jest, to wszystkie pliki w wolumenie są aktualne. Jeżeli tak nie jest, oznacza to, że któryś z plików w wolumenie został zmodyfikowany. W tej sytuacji wymagane jest sprawdzenie poprawności indywidualnego pliku. Ważne jest, aby rozmiar wolumenu był dopasowany do kontretnych danych i środowiska sieciowego. Duże wolumeny umożliwiają walidacje dużej grupy plików, ale jednocześnie często są nieprzydatne, gdyż bardzo szybko zmienia się ich wersja, przez co kosztowne jest utrzymanie ich w aktualnym stanie.


next up previous
Next: Określenie optymalnej ziarnistości schowka. Up: Opis systemu Previous: Zarządzanie schowkiem.
root
2000-08-18