| Termin | Definicja |
|---|---|
| Obsługa transakcji durable | Transakcje trwałe gwarantują zapis zmian do dziennika przed potwierdzeniem, kosztem oczekiwania na dysk. Trwałość jako cecha transakcji ACIDObsługa transakcji durable oznacza zapewnienie, że po potwierdzeniu zakończenia transakcji jej zatwierdzone zmiany przetrwają awarię procesu, systemu operacyjnego albo nagłe odłączenie zasilania. W terminologii baz danych trwałość jest literą D w modelu ACID. Nie chodzi wyłącznie o to, że aplikacja otrzymała odpowiedź „commit”, lecz o to, aby silnik miał wystarczającą gwarancję zapisania informacji potrzebnych do odtworzenia tej transakcji po ponownym uruchomieniu. Trwałość nie jest tym samym co atomowość, spójność ani izolacja. Atomowość określa, czy transakcja zostanie wykonana w całości albo wycofana w całości. Spójność dotyczy zachowania reguł i ograniczeń danych, a izolacja opisuje widoczność równolegle wykonywanych operacji. Transakcja może spełniać pozostałe właściwości, a mimo to nie zapewniać trwałości, jeżeli potwierdzenie jest wysyłane przed bezpiecznym utrwaleniem informacji na nośniku. Dziennik przed stronami danychTypowym mechanizmem realizacji trwałości jest dziennik zapisu, często określany jako write-ahead log, czyli WAL. Silnik najpierw zapisuje w dzienniku opis operacji lub zmienionych wartości, a dopiero później może zapisać właściwe strony danych w ich docelowych strukturach. Zasada „write ahead” wymaga, aby rekord dziennika opisujący zmianę został utrwalony przed zapisaniem strony, której dotyczy. Dzięki temu po awarii można ponownie zastosować zatwierdzone operacje albo wycofać niepełne. Podczas zatwierdzania silnik ustala punkt commit i zapisuje w dzienniku informację pozwalającą rozpoznać transakcję jako zakończoną. Następnie musi doprowadzić bufor dziennika do stanu uznawanego za trwały przez system i nośnik, zanim poinformuje klienta o sukcesie. Strony danych mogą jeszcze pozostawać w pamięci podręcznej i zostać zapisane później. Taki model ogranicza liczbę kosztownych zapisów losowych, a jednocześnie pozwala odtworzyć stan logiczny na podstawie dziennika. Co naprawdę oznacza potwierdzenie commitGwarancja trwałości zależy od konfiguracji silnika, systemu operacyjnego, sterownika oraz właściwości urządzenia przechowującego dane. Wywołanie funkcji zapisu przez aplikację nie musi oznaczać, że dane opuściły pamięć RAM. System operacyjny może buforować zapis, a kontroler dysku lub SSD może potwierdzić operację przed przeniesieniem danych do nieulotnej pamięci. Dlatego silniki korzystają z mechanizmów synchronizacji zapisu, takich jak odpowiedniki operacji flush i wymagania dotyczące kolejności zapisu. Jeżeli urządzenie ma sprawną pamięć podręczną podtrzymywaną bateryjnie albo inną formę ochrony przed utratą zasilania, potwierdzenie synchronizacji może mieć mocniejsze podstawy. W zwykłym komputerze konsumenckim awaria zasilania, uszkodzenie kontrolera lub wadliwy firmware nośnika może jednak ujawnić różnicę między zapisem przyjętym przez system a zapisem rzeczywiście odpornym na utratę zasilania. Trwałość należy więc oceniać razem z ustawieniami buforowania, sposobem montowania systemu plików i dokumentacją konkretnego silnika oraz urządzenia. Odtwarzanie po awarii i skutki dla pracy komputeraPo niekontrolowanym wyłączeniu silnik odczytuje dziennik i ustala, które transakcje zostały zatwierdzone, a które pozostały nieukończone. Zatwierdzone operacje mogą zostać odtworzone, natomiast zmiany transakcji przerwanych są wycofywane albo pomijane. W trakcie tego procesu baza może być przez pewien czas niedostępna lub działać z ograniczoną wydajnością. Czas odzyskiwania zależy między innymi od ilości zapisów od ostatniego punktu kontrolnego, szybkości nośnika i rozmiaru dziennika. Włączenie ścisłej trwałości zwykle zwiększa opóźnienie zatwierdzania, ponieważ każda transakcja może wymagać oczekiwania na synchronizację zapisu. Silniki często ograniczają ten koszt przez grupowanie kilku zatwierdzeń w jeden zapis, ale opóźnienie zależy od obciążenia i konfiguracji. Przy diagnozowaniu problemów z aplikacją warto sprawdzić, czy użytkownicy obserwują długie oczekiwanie na zapis, błędy dziennika, problemy z miejscem na dysku albo niespodziewane odtwarzanie po restarcie. Warszawskie Pogotowie Komputerowe zajmuje się profesjonalną naprawą laptopów i komputerów PC, w tym diagnostyką nośników oraz podzespołów wpływających na stabilność zapisu. |