Dua pendekatan menggunakan log
- Deffered database modification : menangguhkan penulisan sampai partial commit. Menggunakan konsep redo saja.
- Immediate database modification : setiap terjadi modifikasi langsung disimpan. Menggunakan konsep undo dan redo ketika terjadi crash.
Contoh Penggunaan Log ketika terjadi Crash :
<T0,Start>
<T0,A,1000,950>
<T0,B,2000,2050>
Di Immediate Modification, maka akan terjadi undo, sehingga nilai A kembali keawal (1000) dan nilai B kembali ke awal juga (2000)
Pada Deferred Modification, tidak ada proses undo, sehingga proses tersebut tidak akan dicatat dalam log
<T0,Start>
<T0,A,1000,950>
<T0,B,2000,2050>
<T0 commit>
<T1 start>
<T1,C,700,600>
Di Immediate modification A dan B di redo karena sudah di commit di T0, sehingga A menjadi 950 dan B menjadi 2050. Namun C belum di commit sehingga C dilakukan undo. Jadi nilai C sekarang adalah 700.
Pada deferred modification nilai A dan B di T0 akan di redo, sehingga nilai A adalah 950 dan B menjadi 2050, pada proses T1 (pengolahan C) tidak akan di tulis dalam log karena belum di commit.
<T0,Start>
<T0,A,1000,950>
<T0,B,2000,2050>
<T0 commit>
<T1 start>
<T1,C,700,600>
<T1 commit>
Di Immediate modification A dan B di redo karena sudah di commit di T0, sehingga A menjadi 950 dan B menjadi 2050. C berada di T1 dan juga sudah di commit, sehingga nilai C akan di redo sehingga nilainya adalah 600.
Pada deferred modification nilai A dan B di T0 akan di redo, sehingga nilai A adalah 950 dan B menjadi 2050, pada proses T1 (pengolahan C) karena sudah di commit maka akan diredo, sehingga nilai C diredo nilainya menjadi 600.