某些擴充套件,尤其是實現自定義訪問方法的擴充套件,可能需要執行預寫日誌(WAL)以確保崩潰安全性。PostgreSQL 為擴充套件提供了兩種實現此目標的方式。
首先,擴充套件可以選擇使用通用 WAL。這是一種特殊的 WAL 記錄型別,以通用方式描述頁面(page)的更改。這種方法實現起來很簡單,並且在應用記錄時不需要載入擴充套件庫。然而,在執行邏輯解碼時,通用 WAL 記錄會被忽略。
其次,擴充套件可以選擇使用自定義資源管理器。這種方法更靈活,支援邏輯解碼,並且有時可以生成比通用 WAL 更小的預寫日誌記錄。然而,它對擴充套件的實現來說更為複雜。