summaryrefslogtreecommitdiff
path: root/src/third_party/wiredtiger/test/format/checkpoint.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/third_party/wiredtiger/test/format/checkpoint.c')
-rw-r--r--src/third_party/wiredtiger/test/format/checkpoint.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/third_party/wiredtiger/test/format/checkpoint.c b/src/third_party/wiredtiger/test/format/checkpoint.c
index 36e70ae3125..9131e920231 100644
--- a/src/third_party/wiredtiger/test/format/checkpoint.c
+++ b/src/third_party/wiredtiger/test/format/checkpoint.c
@@ -37,6 +37,17 @@ wts_checkpoints(void)
{
char config[1024];
+ /*
+ * Configuring WiredTiger library checkpoints is done separately, rather than as part of the
+ * original database open because format tests small caches and you can get into cache stuck
+ * trouble during the initial load (where bulk load isn't configured). There's a single thread
+ * doing lots of inserts and creating huge leaf pages. Those pages can't be evicted if there's a
+ * checkpoint running in the tree, and the cache can get stuck. That workload is unlikely enough
+ * we're not going to fix it in the library, so configure it away by delaying checkpoint start.
+ */
+ if (g.c_checkpoint_flag != CHECKPOINT_WIREDTIGER)
+ return;
+
testutil_check(
__wt_snprintf(config, sizeof(config), ",checkpoint=(wait=%" PRIu32 ",log_size=%" PRIu32 ")",
g.c_checkpoint_wait, MEGABYTE(g.c_checkpoint_log_size)));