From PostgreSQL wiki
Jump to navigationJump to search

Custom WAL Resource Manager (rmgr)

Extensions can register their own custom WAL resource managers to support custom redo, physical replication, and logical replication/decoding.

Each resource manager needs to register using a unique ID (across all extensions) to prevent problems with crash recovery and replication. The IDs are limited, however, and only IDs between 128 and 255 (inclusive) are available for custom resource managers.

This page lists the current extensions that require a custom resource manager, and the IDs which are reserved for them. If your extension requires a new custom resource manager, start out by using RM_EXPERIMENTAL_ID (128). When the project is close to release or being used in production, choose an unused resource manager ID and add to this list to reserve it.

End-users must ensure that the extensions they deploy do not conflict, while it's not expected with open source extensions for which authors must take care of the current list, close source extensions could easily overlap.

List of Custom Rmgrs

RmgrId Extension Description License
128 N/A Used for extensions still in development N/A
129 OrioleDB OrioleDB – building a modern cloud-native storage engine (... and solving some PostgreSQL wicked problems) 🇺🇦 PostgreSQL License
130 EnterpriseDB Bluefin – Compressed IoT storage Proprietary
131 EnterpriseDB Bluefin2 – Compressed IoT storage Proprietary
132 EnterpriseDB Marlin – High Update storage Proprietary
133 EnterpriseDB Marlin2 – High Update storage Proprietary
134 Neon Neon storage system Apache 2
135 PostgresPro AQO – Adaptive query optimization Proprietary
136 PostgresPro sr_plan – Save and restore plan Proprietary
137 pg_analytics pg_analytics extension GNU AGPL3
241 Columnar Columnar compression extension GNU AGPL3