This thread is a continuation of the thread with the subject
"parallelizing the archiver" [0]. That thread had morphed into an
effort to allow creating archive modules, so I've created a new one to
ensure that this topic has the proper visibility.
I've attached the latest patch from the previous thread. This patch
does a few things. First, it adds the archive_library GUC that
specifies a library to use in place of archive_command. If
archive_library is set to "shell" (the default), archive_command is
still used. The archive_library is preloaded, so its _PG_init() can
do anything that libraries loaded via shared_preload_libraries can do.
Like logical decoding output plugins, archive modules must define an
initialization function and some callbacks. The patch also introduces
the basic_archive module to ensure test coverage on the new
infrastructure.
Nathan
[0] https://www.postgresql.org/message-id/flat/BC4D6BB2-6976-4397-A417-A6A30EEDC63E%40amazon.com