Negatywna pamięć podręczna

W programowaniu komputerowym ujemna pamięć podręczna to pamięć podręczna , która przechowuje również „negatywne” odpowiedzi, czyli awarie. Oznacza to, że program pamięta wynik wskazujący na awarię nawet po usunięciu przyczyny. Zwykle ujemna pamięć podręczna jest wyborem projektowym, ale może to być również błąd oprogramowania .

Przykłady

Rozważ przeglądarkę internetową , która próbuje załadować stronę, gdy sieć jest niedostępna. Przeglądarka otrzyma kod błędu wskazujący problem i może wyświetlić ten komunikat o błędzie użytkownikowi zamiast żądanej strony. Jednak nieprawidłowe jest umieszczanie przez przeglądarkę komunikatu o błędzie w pamięci podręcznej strony, ponieważ spowodowałoby to ponowne wyświetlenie błędu, gdy użytkownik próbuje załadować tę samą stronę — nawet po przywróceniu działania sieci. Komunikat o błędzie nie może być przechowywany w pamięci podręcznej pod adresem URL strony ; dopóki przeglądarka nie będzie w stanie pomyślnie załadować strony, za każdym razem, gdy użytkownik spróbuje załadować stronę, przeglądarka musi podjąć nową próbę.

Frustrującym aspektem negatywnych pamięci podręcznych jest to, że użytkownik może włożyć wiele wysiłku w rozwiązanie problemu, a następnie po ustaleniu i usunięciu pierwotnej przyczyny błąd nadal nie znika.

Istnieją przypadki, w których stany podobne do awarii muszą być buforowane. Na przykład DNS wymaga, aby buforujące serwery nazw pamiętały zarówno odpowiedzi negatywne, jak i pozytywne. Jeśli autorytatywny serwer nazw zwraca negatywną odpowiedź, wskazując, że nazwa nie istnieje, jest ona zapisywana w pamięci podręcznej. Negatywna odpowiedź może zostać odebrana jako porażka na poziomie aplikacji; jednak dla buforującego go serwera nazw nie jest to awaria. Czasy pamięci podręcznej dla negatywnego i pozytywnego buforowania mogą być dostrajane niezależnie.

Opis

Ujemna pamięć podręczna jest zwykle pożądana tylko wtedy, gdy awaria jest bardzo kosztowna, a stan błędu pojawia się automatycznie bez działania użytkownika. Stwarza to sytuację, w której użytkownik nie jest w stanie określić przyczyny awarii: pomimo naprawienia wszystkiego, co mu przyjdzie do głowy, program nadal nie chce działać. Gdy awaria jest zapisywana w pamięci podręcznej, program powinien wyraźnie wskazywać, co należy zrobić, aby wyczyścić pamięć podręczną, oprócz opisu przyczyny błędu. W takich warunkach ujemna pamięć podręczna jest przykładem antywzorca projektowego .

Ujemna pamięć podręczna nadal może zostać przywrócona, jeśli rekordy w pamięci podręcznej wygasną.

Zobacz też