summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSulabh Mahajan <sulabh.mahajan@mongodb.com>2017-03-23 11:57:44 +1100
committerDavid Hows <howsdav@gmail.com>2017-03-23 11:57:44 +1100
commit620398dc9a90b401aa9e4437c834bfbb2a6d9a6d (patch)
treeac40eefe0e05a5df9053b6adacb133d8062fbbf0
parentcfdf4394aa39209d402a9006661810cda3bdb38d (diff)
downloadmongo-620398dc9a90b401aa9e4437c834bfbb2a6d9a6d.tar.gz
WT-3202 Add in_memory config opt, do not reopen connection if db is in_memory (#3341)
-rw-r--r--bench/wtperf/wtperf.c13
-rw-r--r--bench/wtperf/wtperf_opt.i2
-rw-r--r--src/docs/wtperf.dox2
3 files changed, 16 insertions, 1 deletions
diff --git a/bench/wtperf/wtperf.c b/bench/wtperf/wtperf.c
index 7f5e5ad3373..b5aff21bdbc 100644
--- a/bench/wtperf/wtperf.c
+++ b/bench/wtperf/wtperf.c
@@ -1655,6 +1655,9 @@ close_reopen(WTPERF *wtperf)
opts = wtperf->opts;
+ if (opts->in_memory)
+ return (0);
+
if (!opts->readonly && !opts->reopen_connection)
return (0);
/*
@@ -2568,7 +2571,8 @@ main(int argc, char *argv[])
/* Concatenate non-default configuration strings. */
if ((opts->verbose > 1 && strlen(debug_cconfig) != 0) ||
user_cconfig != NULL || opts->session_count_idle > 0 ||
- wtperf->compress_ext != NULL || wtperf->async_config != NULL) {
+ wtperf->compress_ext != NULL || wtperf->async_config != NULL ||
+ opts->in_memory) {
req_len = 20;
req_len += wtperf->async_config != NULL ?
strlen(wtperf->async_config) : 0;
@@ -2583,6 +2587,7 @@ main(int argc, char *argv[])
opts->session_count_idle +
wtperf->workers_cnt + opts->populate_threads + 10);
}
+ req_len += opts->in_memory ? strlen("in_memory=true") : 0;
req_len += user_cconfig != NULL ? strlen(user_cconfig) : 0;
req_len += debug_cconfig != NULL ? strlen(debug_cconfig) : 0;
cc_buf = dmalloc(req_len);
@@ -2603,6 +2608,12 @@ main(int argc, char *argv[])
append_comma, wtperf->compress_ext);
append_comma = ",";
}
+ if (opts->in_memory) {
+ pos += (size_t)snprintf(
+ cc_buf + pos, req_len - pos, "%s%s",
+ append_comma, "in_memory=true");
+ append_comma = ",";
+ }
if (sess_cfg != NULL && strlen(sess_cfg) != 0) {
pos += (size_t)snprintf(
cc_buf + pos, req_len - pos, "%s%s",
diff --git a/bench/wtperf/wtperf_opt.i b/bench/wtperf/wtperf_opt.i
index 63cef4c28fb..90f70457407 100644
--- a/bench/wtperf/wtperf_opt.i
+++ b/bench/wtperf/wtperf_opt.i
@@ -110,6 +110,8 @@ DEF_OPT_AS_UINT32(database_count, 1,
DEF_OPT_AS_BOOL(drop_tables, 0,
"Whether to drop all tables at the end of the run, and report time taken"
" to do the drop.")
+DEF_OPT_AS_BOOL(in_memory, 0,
+ "Whether to create the database in-memory.")
DEF_OPT_AS_UINT32(icount, 5000,
"number of records to initially populate. If multiple tables are "
"configured the count is spread evenly across all tables.")
diff --git a/src/docs/wtperf.dox b/src/docs/wtperf.dox
index 2eac0fef3f4..6bdcf5f4f8d 100644
--- a/src/docs/wtperf.dox
+++ b/src/docs/wtperf.dox
@@ -167,6 +167,8 @@ do population phase; false to use existing database
number of WiredTiger databases to use. Each database will execute the workload using a separate home directory and complete set of worker threads
@par drop_tables (boolean, default=false)
Whether to drop all tables at the end of the run, and report time taken to do the drop.
+@par in_memory (boolean, default=false)
+Whether to create the database in-memory.
@par icount (unsigned int, default=5000)
number of records to initially populate. If multiple tables are configured the count is spread evenly across all tables.
@par idle_table_cycle (unsigned int, default=0)