pg_basebackup: Skip a few more fsyncs if --no-sync is specified.
This is mostly interesting for running the regression tests on machines with slow / overloaded IO. Discussion: https://postgr.es/m/20220119041646.rhuo3youiqxqjmo2@alap3.anarazel.de
This commit is contained in:
parent
ac7df108cf
commit
9c86d9337e
@ -2201,9 +2201,21 @@ BaseBackup(void)
|
|||||||
snprintf(tmp_filename, MAXPGPATH, "%s/backup_manifest.tmp", basedir);
|
snprintf(tmp_filename, MAXPGPATH, "%s/backup_manifest.tmp", basedir);
|
||||||
snprintf(filename, MAXPGPATH, "%s/backup_manifest", basedir);
|
snprintf(filename, MAXPGPATH, "%s/backup_manifest", basedir);
|
||||||
|
|
||||||
/* durable_rename emits its own log message in case of failure */
|
if (do_sync)
|
||||||
if (durable_rename(tmp_filename, filename) != 0)
|
{
|
||||||
exit(1);
|
/* durable_rename emits its own log message in case of failure */
|
||||||
|
if (durable_rename(tmp_filename, filename) != 0)
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (rename(tmp_filename, filename) != 0)
|
||||||
|
{
|
||||||
|
pg_log_error("could not rename file \"%s\" to \"%s\": %m",
|
||||||
|
tmp_filename, filename);
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (verbose)
|
if (verbose)
|
||||||
|
@ -445,7 +445,17 @@ dir_close(Walfile f, WalCloseMethod method)
|
|||||||
snprintf(tmppath2, sizeof(tmppath2), "%s/%s",
|
snprintf(tmppath2, sizeof(tmppath2), "%s/%s",
|
||||||
dir_data->basedir, filename2);
|
dir_data->basedir, filename2);
|
||||||
pg_free(filename2);
|
pg_free(filename2);
|
||||||
r = durable_rename(tmppath, tmppath2);
|
if (dir_data->sync)
|
||||||
|
r = durable_rename(tmppath, tmppath2);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (rename(tmppath, tmppath2) != 0)
|
||||||
|
{
|
||||||
|
pg_log_error("could not rename file \"%s\" to \"%s\": %m",
|
||||||
|
tmppath, tmppath2);
|
||||||
|
r = -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (method == CLOSE_UNLINK)
|
else if (method == CLOSE_UNLINK)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user