Trwałość (bazy danych)
Trwałość – jedna z własności ACID, gwarantująca zachowanie wyniku zatwierdzonej transakcji nawet w wypadku nagłej utraty zasilania, awarii systemu operacyjnego lub awarii sprzętowej (oczywiście poza uszkodzeniem konkretnego obszaru pamięci trwałej). Przykładowo, w systemie rezerwacji pokoi hotelowych po zatwierdzeniu operacji rezerwacji pokoju w hotelu przez bazę danych, nawet po awarii systemu, dany pokój pozostanie zarezerwowany.
Wiele systemów zarządzania bazą danych realizuje tę własność poprzez zapis transakcji w dziennikach zdarzeń, takich jak WAL (ang. Write-Ahead Log) w systemie PostgreSQL[1]. Zapis w dzienniku może zostać następnie wykorzystany do odtworzenia stanu systemu przed wystąpieniem awarii. Transakcja jest wówczas uznawana za zatwierdzoną w momencie, gdy zostanie zapisana w dzienniku.
W wypadku transakcji rozproszonych transakcja może zostać zatwierdzona wyłącznie po otrzymaniu potwierdzenia od każdego z węzłów lokalnych. Zwykle odbywa się to poprzez protokół zatwierdzania dwufazowego[2].
Zobacz też
edytujPrzypisy
edytuj- ↑ The PostgreSQL Global Development Group: Reliability and the Write-Ahead Log. [dostęp 2013-12-21]. (ang.).
- ↑ Jacek Sorgowicki: Transakcje rozproszone w Oracle. [dostęp 2013-12-21]. [zarchiwizowane z tego adresu (2012-07-16)]. (pol.).