Re: is the base backup protocol used by out-of-core tools?

Michael Paquier <michael@paquier.xyz>

From: Michael Paquier <michael@paquier.xyz>
To: Robert Haas <robertmhaas@gmail.com>
Cc: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>, Kyotaro Horiguchi <horikyota.ntt@gmail.com>, Etsuro Fujita <etsuro.fujita@gmail.com>
Date: 2022-02-09T02:21:41Z
Lists: pgsql-hackers
On Tue, Feb 08, 2022 at 11:26:41AM -0500, Robert Haas wrote:
> From that point of view, there's no downside to removing from the
> server the old syntax for BASE_BACKUP and the old protocol for taking
> backups. We can't remove anything from pg_basebackup, because it is
> our practice to make new versions of pg_basebackup work with old
> versions of the server. But the reverse is not true: an older
> pg_basebackup will categorically refuse to work with a newer server
> version. Therefore keeping the code for this stuff around in the
> server has no value ... unless there is out-of-core code that (a) uses
> the BASE_BACKUP command and (b) wouldn't immediately adopt the new
> syntax and protocol anyway. If there is, we might want to keep the
> backward-compatibility code around in the server for a few releases.
> If not, we should probably nuke that code to simplify things and
> reduce the maintenance burden.

This line of arguments looks sensible from here, so +1 for this
cleanup in the backend as of 15~.  I am not sure if we should worry
about out-of-core tools that use replication commands, either, and the
new grammar is easy to adapt to.

FWIW, one backup tool maintained by NTT is pg_rman, which does not use
the replication protocol AFAIK:
https://github.com/ossc-db/pg_rman
Perhaps Horiguchi-san or Fujita-san have an opinion on that.
--
Michael

Commits

  1. Remove server support for the previous base backup protocol.

  2. Remove server support for old BASE_BACKUP command syntax.

  3. Modify pg_basebackup to use a new COPY subprotocol for base backups.

  4. Flexible options for BASE_BACKUP.