1
0
mirror of https://github.com/postgres/postgres.git synced 2025-11-06 07:49:08 +03:00

Make min_wal_size/max_wal_size use MB internally

Previously they were defined using multiples of XLogSegSize.
Remove GUC_UNIT_XSEGS. Introduce GUC_UNIT_MB

Extracted from patch series on XLogSegSize infrastructure.

Beena Emerson
This commit is contained in:
Simon Riggs
2017-04-04 18:00:01 -04:00
parent cd740c0dbf
commit 9a3215026b
4 changed files with 30 additions and 28 deletions

View File

@@ -729,6 +729,11 @@ static const unit_conversion memory_unit_conversion_table[] =
{"MB", GUC_UNIT_KB, 1024},
{"kB", GUC_UNIT_KB, 1},
{"TB", GUC_UNIT_MB, 1024 * 1024},
{"GB", GUC_UNIT_MB, 1024},
{"MB", GUC_UNIT_MB, 1},
{"kB", GUC_UNIT_MB, -1024},
{"TB", GUC_UNIT_BLOCKS, (1024 * 1024 * 1024) / (BLCKSZ / 1024)},
{"GB", GUC_UNIT_BLOCKS, (1024 * 1024) / (BLCKSZ / 1024)},
{"MB", GUC_UNIT_BLOCKS, 1024 / (BLCKSZ / 1024)},
@@ -739,11 +744,6 @@ static const unit_conversion memory_unit_conversion_table[] =
{"MB", GUC_UNIT_XBLOCKS, 1024 / (XLOG_BLCKSZ / 1024)},
{"kB", GUC_UNIT_XBLOCKS, -(XLOG_BLCKSZ / 1024)},
{"TB", GUC_UNIT_XSEGS, (1024 * 1024 * 1024) / (XLOG_SEG_SIZE / 1024)},
{"GB", GUC_UNIT_XSEGS, (1024 * 1024) / (XLOG_SEG_SIZE / 1024)},
{"MB", GUC_UNIT_XSEGS, -(XLOG_SEG_SIZE / (1024 * 1024))},
{"kB", GUC_UNIT_XSEGS, -(XLOG_SEG_SIZE / 1024)},
{""} /* end of table marker */
};
@@ -2236,10 +2236,10 @@ static struct config_int ConfigureNamesInt[] =
{"min_wal_size", PGC_SIGHUP, WAL_CHECKPOINTS,
gettext_noop("Sets the minimum size to shrink the WAL to."),
NULL,
GUC_UNIT_XSEGS
GUC_UNIT_MB
},
&min_wal_size,
5, 2, INT_MAX,
&min_wal_size_mb,
5 * (XLOG_SEG_SIZE/ (1024 * 1024)), 2, MAX_KILOBYTES,
NULL, NULL, NULL
},
@@ -2247,10 +2247,10 @@ static struct config_int ConfigureNamesInt[] =
{"max_wal_size", PGC_SIGHUP, WAL_CHECKPOINTS,
gettext_noop("Sets the WAL size that triggers a checkpoint."),
NULL,
GUC_UNIT_XSEGS
GUC_UNIT_MB
},
&max_wal_size,
64, 2, INT_MAX,
&max_wal_size_mb,
64 * (XLOG_SEG_SIZE/ (1024 * 1024)), 2, MAX_KILOBYTES,
NULL, assign_max_wal_size, NULL
},
@@ -8085,6 +8085,9 @@ GetConfigOptionByNum(int varnum, const char **values, bool *noshow)
case GUC_UNIT_KB:
values[2] = "kB";
break;
case GUC_UNIT_MB:
values[2] = "MB";
break;
case GUC_UNIT_BLOCKS:
snprintf(buffer, sizeof(buffer), "%dkB", BLCKSZ / 1024);
values[2] = pstrdup(buffer);
@@ -8093,11 +8096,6 @@ GetConfigOptionByNum(int varnum, const char **values, bool *noshow)
snprintf(buffer, sizeof(buffer), "%dkB", XLOG_BLCKSZ / 1024);
values[2] = pstrdup(buffer);
break;
case GUC_UNIT_XSEGS:
snprintf(buffer, sizeof(buffer), "%dMB",
XLOG_SEG_SIZE / (1024 * 1024));
values[2] = pstrdup(buffer);
break;
case GUC_UNIT_MS:
values[2] = "ms";
break;