1
0
mirror of https://github.com/pgbackrest/pgbackrest.git synced 2024-12-14 10:13:05 +02:00
pgbackrest/lib/pgBackRest
David Steele 7d8068f27b Don't decode manifest data when it is generated on a remote.
Decoding a manifest from the JSON provided by C to the hash required by Perl is an expensive process.  If manifest() was called on a remote it was being decoded into a hash and then immediately re-encoded into JSON for transmission over the protocol layer.

Instead, provide a function for the remote to get the raw JSON which can be transmitted as is and decoded in the calling process instead.

This makes remote manifest calls as fast as they were before 2.16, but local calls must still pay the decoding penalty and are therefore slower.  This will continue to be true until the Perl storage interface is retired at the end of the C migration.

Note that for reasonable numbers of tables there is no detectable difference.  The case in question involved 250K tables with a 10 minute decode time (which was being doubled) on a fast workstation.
2019-09-03 12:30:45 -04:00
..
Archive Fix comment typos. 2019-08-26 12:05:36 -04:00
Backup Fix comment typos. 2019-08-26 12:05:36 -04:00
Check Fix comment typos. 2019-08-26 12:05:36 -04:00
Common Fix comment typos. 2019-08-26 12:05:36 -04:00
Config Fix comment typos. 2019-08-26 12:05:36 -04:00
Protocol Don't decode manifest data when it is generated on a remote. 2019-09-03 12:30:45 -04:00
Storage Don't decode manifest data when it is generated on a remote. 2019-09-03 12:30:45 -04:00
Db.pm Fix comment typos. 2019-08-26 12:05:36 -04:00
DbVersion.pm Fix static WAL segment size used to determine if archive-push-queue-max has been exceeded. 2018-10-27 20:00:00 +01:00
InfoCommon.pm Added stanza-upgrade command. 2017-04-03 10:42:55 -04:00
LibC.pm Remove perl critic and coverage. 2019-07-05 16:55:17 -04:00
LibCAuto.pm Add repo-s3-port option for setting a non-standard S3 service port. 2019-07-25 17:36:51 -04:00
Main.pm Fix comment typos. 2019-08-26 12:05:36 -04:00
Manifest.pm Fix comment typos. 2019-08-26 12:05:36 -04:00
Restore.pm Fix comment typos. 2019-08-26 12:05:36 -04:00
RestoreFile.pm Add Perl interface to C storage layer. 2019-06-26 08:24:58 -04:00
Version.pm Begin v2.17 development. 2019-08-05 12:32:06 -04:00