Trwałość (bazy danych)

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacja, szukaj

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ż[edytuj | edytuj kod]

Przypisy

  1. The PostgreSQL Global Development Group: Reliability and the Write-Ahead Log (ang.). [dostęp 2013-12-21].
  2. Jacek Sorgowicki: Transakcje rozproszone w Oracle (pol.). [dostęp 2013-12-21].