Certain extensions, principally extensions that implement custom access methods, may need to perform write-ahead logging in order to ensure crash-safety. <productname>PostgreSQL</productname> provides two ways for extensions to achieve this goal. 特定の拡張、主にカスタムアクセスメソッドを実装する拡張は、クラッシュ時の安全性を確保するために先行書き込みログ(WAL)を実行する必要があるかもしれません。 PostgreSQLは、拡張がこの目標を達成するために2つの方法を提供します。
First, extensions can choose to use <link linkend="generic-wal">generic WAL</link>, a special type of WAL record which describes changes to pages in a generic way. This method is simple to implement and does not require that an extension library be loaded in order to apply the records. However, generic WAL records will be ignored when performing logical decoding. 1つ目として、拡張は汎用WALの使用を選択できます。 これは、ページの変更を汎用的な方法で記述する特殊なWALレコードです。 この方法は実装が簡単で、レコードを適用するために拡張ライブラリをロードする必要がありません。 ただし、汎用WALレコードはロジカルデコーディングを実行するときには無視されます。
Second, extensions can choose to use a <link linkend="custom-rmgr">custom resource manager</link>. This method is more flexible, supports logical decoding, and can sometimes generate much smaller write-ahead log records than would be possible with generic WAL. However, it is more complex for an extension to implement. 2つ目として、拡張はカスタムリソースマネージャの使用を選択できます。 この方法はより柔軟で、ロジカルデコーディングをサポートし、汎用WALよりも小さな先行書き込みログ(WAL)レコードを生成できる場合があります。 ただし、拡張が実装するのはより複雑です。
doc/src/sgml/generic-wal.sgml doc/src/sgml/custom-rmgr.sgml