Глава 66. Предварительная запись в журнал для расширений

Для некоторых расширений, особенно реализующих пользовательские методы доступа, может потребоваться предварительная запись в журнал для обеспечения безопасности данных при сбое. В Postgres Pro можно достичь этой цели двумя способами.

Первый способ: расширения могут использовать унифицированный тип записей WAL, в котором изменения страниц описываются в общем виде. Этот способ прост в реализации и не требует загрузки библиотеки расширений для применения записей. Однако записи WAL такого типа будут игнорироваться при выполнении логического декодирования.

Второй способ: расширения могут использовать пользовательский менеджер ресурсов. Этот способ более гибкий, поддерживает логическое декодирование и иногда генерирует записи WAL гораздо меньшего размера, чем при использовании унифицированных записей WAL. Однако его сложнее реализовать для расширений.

Chapter 66. Write Ahead Logging for Extensions

Certain extensions, principally extensions that implement custom access methods, may need to perform write-ahead logging in order to ensure crash-safety. Postgres Pro provides two ways for extensions to achieve this goal.

First, extensions can choose to use generic WAL, 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.

Second, extensions can choose to use a custom resource manager. 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.

FAQ