摘要:目的在硬盤數據不損壞的情況下,預寫式日志允許存儲系統在崩潰后能夠在日志的指導下恢復到崩潰前的狀態,避免數據丟失可以為非內存型數據提升極高的效率,而且保證了數據的完整性。
什么是預寫式日志
在計算機科學中,預寫式日志(Write-ahead logging,縮寫 WAL)是關系數據庫系統中用于提供原子性和持久性(ACID屬性中的兩個)的一系列技術,ARIES是WAL系列技術常用的算法,在文件系統中,WAL通常稱為journaling。
核心思想在使用WAL的系統中,所有的修改在提交之前都要先寫入log文件中,log文件中通常包括redo和undo信息,通過日志記錄描述好數據的改變后(redo和undo),再寫入緩存,等緩存區寫滿后,最后再往持久層修改數據。
目的在硬盤數據不損壞的情況下,預寫式日志允許存儲系統在崩潰后能夠在日志的指導下恢復到崩潰前的狀態,避免數據丟失
可以為非內存型數據提升極高的效率,而且保證了數據的完整性。可以通過一個例子來說明,假設一個程序在執行某些操作的過程中機器掉電了,在重新啟動時,程序可能需要知道當時執行的操作是成功了還是部分成功或者是失敗了,如果使用了WAL,程序就可以檢查log文件,并對突然掉電時計劃執行的操作內容跟實際上執行的操作內容進行比較。在這個比較的基礎上,程序就可以決定是撤銷已做的操作還是繼續完成已做的操作,或者是保持原樣。
預寫式日志實現方式WAL允許用in-place方式更新數據庫,用in-place方式做更新的主要優點是減少索引和塊列表的修改
另一種用來實現原子更新的方法是shadow paging,它并不是in-place方式
參考預寫式日志
Write Ahead Log 雜談
Write-Ahead logging(WAL)預寫式日志
Write Ahead Logging
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/17893.html
閱讀 1747·2023-04-25 16:28
閱讀 684·2021-11-23 09:51
閱讀 1467·2019-08-30 15:54
閱讀 1148·2019-08-30 15:53
閱讀 2815·2019-08-30 15:53
閱讀 3412·2019-08-30 15:43
閱讀 3249·2019-08-30 11:18
閱讀 3260·2019-08-26 10:25