某些扩展(主要是实现自定义访问方法的扩展)可能需要执行预写式日志记录以确保崩溃安全。PostgreSQL 为扩展实现这一目标提供了两种方式。
第一,扩展可以选择使用 通用 WAL,这是一种以通用方式描述页面更改的特殊 WAL 记录类型。这种方式实现简单,并且应用这些记录时不需要加载扩展库。不过,在执行逻辑解码时,通用 WAL 记录会被忽略。
第二,扩展可以选择使用 自定义资源管理器。这种方式更灵活,支持逻辑解码,并且有时能生成比通用 WAL 小得多的预写式日志记录。不过,它对扩展而言实现起来更复杂。