summaryrefslogtreecommitdiff
path: root/src/third_party/wiredtiger/test/format/config.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/third_party/wiredtiger/test/format/config.c')
-rw-r--r--src/third_party/wiredtiger/test/format/config.c48
1 files changed, 48 insertions, 0 deletions
diff --git a/src/third_party/wiredtiger/test/format/config.c b/src/third_party/wiredtiger/test/format/config.c
index eb86c0860e7..de68fd9fe60 100644
--- a/src/third_party/wiredtiger/test/format/config.c
+++ b/src/third_party/wiredtiger/test/format/config.c
@@ -31,6 +31,7 @@
static void config(void);
static void config_backup_incr(void);
+static void config_backup_incr_granularity(void);
static void config_backward_compatible(void);
static void config_cache(void);
static void config_checkpoint(void);
@@ -283,6 +284,8 @@ config_backup_incr(void)
if (g.c_logging_archive)
config_single("logging.archive=0", false);
}
+ if (g.c_backup_incr_flag == INCREMENTAL_BLOCK)
+ config_backup_incr_granularity();
return;
}
@@ -311,11 +314,56 @@ config_backup_incr(void)
case 9:
case 10:
config_single("backup.incremental=block", false);
+ config_backup_incr_granularity();
break;
}
}
/*
+ * config_backup_incr_granularity --
+ * Configuration of block granularity for incremental backup
+ */
+static void
+config_backup_incr_granularity(void)
+{
+ uint32_t granularity, i;
+ char confbuf[128];
+
+ if (config_is_perm("backup.incr_granularity"))
+ return;
+
+ /*
+ * Three block sizes are interesting. 16MB is the default for WiredTiger and MongoDB. 1MB is the
+ * minimum allowed by MongoDB. Smaller sizes stress block tracking and are good for testing. The
+ * granularity is in units of KB.
+ */
+ granularity = 0;
+ i = mmrand(NULL, 1, 10);
+ switch (i) {
+ case 1: /* 50% small size for stress testing */
+ case 2:
+ case 3:
+ case 4:
+ case 5:
+ granularity = 4 * i;
+ break;
+ case 6: /* 20% 1MB granularity */
+ case 7:
+ granularity = 1024;
+ break;
+ case 8: /* 30% 16MB granularity */
+ case 9:
+ case 10:
+ granularity = 16 * 1024;
+ break;
+ }
+
+ testutil_check(
+ __wt_snprintf(confbuf, sizeof(confbuf), "backup.incr_granularity=%u", granularity));
+ config_single(confbuf, false);
+}
+
+/*
* config_backward_compatible --
* Backward compatibility configuration.
*/