7.2 Kierunki dalszych prac

Analiza przedstawionych algorytmów wskazuje, iż algorytmy grupujące nie są w stanie poradzić sobie z niektórymi problemami. Jedną z ważniejszych wad jest ich duża wrażliwość na obecność transakcji długich. Mimo podjętych prób minimalizacji tego efektu, nie udało się nam osiągnąć zauważalnego zwiększenia wydajności. Brak poprawy był spowodowany trudnościami z określeniem właściwego momentu rozpoczęcia transakcji na maszynie zapasowej. Możliwe, iż ustalenie zależności między czasem wykonania transakcji na obu maszynach, a następnie jego uwzględnienie w obliczeniach poprawiłoby działanie algorytmów -- w wyraźny sposób redukując liczbę wycofanych transakcji.

Obejściem problemu transakcji długich jest realizacja replikacji na poziomie zapisu rekordów do kroniki transakcji. Takie rozwiązanie ma niestety poważne wady (opisane w rozdziale 5).

Inną niepożądaną cechą, która wyraźnie zaznaczyła się w testowanych algorytmach, jest niski stopień współbieżności przetwarzania na maszynie zapasowej (patrz rozdział 6). Skutkiem tego jest niekontrolowany wzrost opóźnienia replikacji bądź znaczący skok czasu reakcji systemu. Dzięki dodatkowym informacjom na temat przetwarzanych transakcji oraz zależności między nimi moglibyśmy jednak próbować usprawnić proces replikacji. Na podstawie grafu zależności transakcji można bezbłędnie określić transakcje niezależne. W efekcie uzyskujemy zwiększenie współbieżności wykonania transakcji oraz zmniejszenie czasu reakcji systemu.

Kolejnym sposobem na zwiększenie stopnia współbieżności maszyny zapasowej jest osłabienie wymogu serializacji. Powoduje to naruszenie warunków spójności danych. Niemniej jednak można zgodzić się na częściowe naruszenie tych warunków i dzięki temu zwiększyć współbieżność transakcji na maszynie zapasowej. Krishnakumar i Bernstein [8] wykazali, że system, w którym każda transakcja może nie znać efektów zakończenia co najwyżej n poprzedzających ją transakcji, osiąga n + 1 razy wyższy stopień współbieżności od systemów z pełną serializacją.

Oddzielnym zagadnieniem jest utrzymanie więcej niż dwóch kopii danych. Niemal wszystkie przeanalizowane przez nas algorytmy można zaadaptować na potrzeby systemów transakcyjnych wykorzystujących większą liczbę kopii danych. Należy jednak pamiętać o wiążących się z tym problemach, takich jak: wybór aktywnej kopii, podział sieci (ang. network partitioning) oraz synchronizacja danych.



K. Kowalewski, R. Żmijewski
1999-12-17