summaryrefslogtreecommitdiff
path: root/src/include/commands
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/commands')
-rw-r--r--src/include/commands/vacuum.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/include/commands/vacuum.h b/src/include/commands/vacuum.h
index 689dbb77024..2a4dae7dd87 100644
--- a/src/include/commands/vacuum.h
+++ b/src/include/commands/vacuum.h
@@ -222,6 +222,9 @@ typedef struct VacuumParams
* use default */
int multixact_freeze_table_age; /* multixact age at which to scan
* whole table */
+ int freeze_strategy_threshold; /* threshold to use eager
+ * freezing, in megabytes, -1 to
+ * use default */
bool is_wraparound; /* force a for-wraparound vacuum */
int log_min_duration; /* minimum execution threshold in ms at
* which autovacuum is logged, -1 to use
@@ -274,6 +277,14 @@ struct VacuumCutoffs
*/
TransactionId FreezeLimit;
MultiXactId MultiXactCutoff;
+
+ /*
+ * Eager freezing strategy is used whenever target rel's main fork size
+ * exceeds freeze_strategy_threshold_pages. Otherwise lazy freezing
+ * strategy is used. (Actually, there are exceptions. Non-permanent
+ * tables always use eager freezing strategy.)
+ */
+ BlockNumber freeze_strategy_threshold_pages;
};
/*
@@ -297,6 +308,7 @@ extern PGDLLIMPORT int vacuum_freeze_min_age;
extern PGDLLIMPORT int vacuum_freeze_table_age;
extern PGDLLIMPORT int vacuum_multixact_freeze_min_age;
extern PGDLLIMPORT int vacuum_multixact_freeze_table_age;
+extern PGDLLIMPORT int vacuum_freeze_strategy_threshold;
extern PGDLLIMPORT int vacuum_failsafe_age;
extern PGDLLIMPORT int vacuum_multixact_failsafe_age;