Porównanie metod: Metoda całkowitego blokowania vs. Metoda Większościowa
Zapis.
Metoda |
Ilość komunikatów przy zapisie |
Długie komunikaty |
Całkowite blokowanie |
3n |
n |
Metoda większościowa |
2n + 1 |
n |
Przy zapisie nieco lepsza jest metoda większościowa, bo wymaga średnio mniej komunikatów na zapis.
Odczyt.
Metoda |
Ilość komunikatów przy zapisie |
Długie komunikaty |
Całkowite blokowanie |
2 |
1 |
Metoda większościowa |
n + 1 |
1 |
Jeśli typowe transakcje wymagają równej liczby blokad całkowitych i blokad zapisu, to żadna z tych metod nie ma przewagi, nawet przy policzeniu całkowitej liczby komunikatów lub przy przypisaniu większej wagi komunikatom krótkim niż długim. Faktycznie dla n = 1 obie metody są identyczne. Z drugiej strony, jeśli większość blokad zakłada się dla odczytu, to znacznie przydatniejsza jest metoda całkowitego blokowania wszystkiego a jeśli przeważają blokady całkowite, to lepsza jest metoda większościowa.
Ponadto metoda większościowa spisuje się lepiej w następujących sytuacjach:
Transakcje często współzawodniczą o blokadę tej samej jednostki.
Sprawiamy, że transakcje, chcąc zablokować jednostkę, żądają blokad we wszystkich węzłach lub w ich większości.
Przy zastosowaniu metody całkowitego blokowania wszystkiego, każda z dwóch realizujących transakcji rozpoczętych w mniej więcej tym samym czasie potrafi prawdopodobnie zapewnić sobie blokady co najmniej jednej kopii jednostki o którą współzawodniczą. Ta sytuacja powoduje impas: są to sytuacje wykrywalne ale czasochłonne. Pobierają one zarówno czas rzeczywisty, ponieważ każda transakcja czeka dopóty, dopóki impas nie zostanie usunięty, jak i czas systemowy, gdyż często jest niezbędne wykonywanie procedury wykrywania impasu. Przy zastosowaniu metody większościowej jedna transakcja zawsze uzyska zablokowanie drugiej, podczas gdy druga może czekać lub być odrzucona.