summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Cahill <michael.cahill@wiredtiger.com>2014-12-02 10:41:29 +1100
committerMichael Cahill <michael.cahill@wiredtiger.com>2014-12-02 10:41:29 +1100
commit5ee9cdd4aa0e78c9e3209567a3ef91304ff6a010 (patch)
tree26e873dd552751694302fd5e5a9606db3b742ef2
parentbf24e956ad294b84412e2e220d05d5840ada140e (diff)
parentded5a6347c07a8573cfa2e65b4cfd11cdc8304ab (diff)
downloadmongo-5ee9cdd4aa0e78c9e3209567a3ef91304ff6a010.tar.gz
Merge branch 'develop' into split-right
Conflicts: src/include/wiredtiger.in
-rw-r--r--bench/wtperf/runners/log-append.wtperf8
-rw-r--r--bench/wtperf/runners/log-nockpt.wtperf12
-rw-r--r--bench/wtperf/runners/log.wtperf11
-rw-r--r--bench/wtperf/wtperf_opt.i2
-rw-r--r--dist/stat_data.py1
-rw-r--r--src/btree/bt_evict.c3
-rw-r--r--src/docs/wtperf.dox2
-rw-r--r--src/include/stat.h1
-rw-r--r--src/include/wiredtiger.in178
-rw-r--r--src/support/stat.c3
10 files changed, 131 insertions, 90 deletions
diff --git a/bench/wtperf/runners/log-append.wtperf b/bench/wtperf/runners/log-append.wtperf
new file mode 100644
index 00000000000..9d0a78e3c61
--- /dev/null
+++ b/bench/wtperf/runners/log-append.wtperf
@@ -0,0 +1,8 @@
+# wtperf options file: Test a log file with a multi-threaded
+# append workload.
+conn_config="cache_size=1G,log=(enabled=true,file_max=20MB),checkpoint=(log_size=1G)"
+table_config="type=file"
+icount=50000000
+report_interval=5
+run_time=0
+populate_threads=8
diff --git a/bench/wtperf/runners/log-nockpt.wtperf b/bench/wtperf/runners/log-nockpt.wtperf
new file mode 100644
index 00000000000..a078cead740
--- /dev/null
+++ b/bench/wtperf/runners/log-nockpt.wtperf
@@ -0,0 +1,12 @@
+# wtperf options file: Test performance with a log file enabled.
+# Set the log file reasonably small to catch log-swtich bottle
+# necks.
+conn_config="cache_size=1G,log=(enabled=true,file_max=20MB)"
+table_config="type=file"
+icount=50000
+report_interval=5
+run_time=40
+populate_threads=1
+random_range=50000000
+threads=((count=8,inserts=1))
+
diff --git a/bench/wtperf/runners/log.wtperf b/bench/wtperf/runners/log.wtperf
new file mode 100644
index 00000000000..c336c9d8a5f
--- /dev/null
+++ b/bench/wtperf/runners/log.wtperf
@@ -0,0 +1,11 @@
+# wtperf options file: Test performance with a log file enabled.
+# Set the log file reasonably small to catch log-swtich bottle
+# necks.
+conn_config="cache_size=1G,log=(enabled=true,file_max=20MB),checkpoint=(log_size=1G)"
+table_config="type=file"
+icount=50000
+report_interval=5
+run_time=120
+populate_threads=1
+random_range=50000000
+threads=((count=8,inserts=1))
diff --git a/bench/wtperf/wtperf_opt.i b/bench/wtperf/wtperf_opt.i
index 3b4ddb6b3ad..3fec9bddac9 100644
--- a/bench/wtperf/wtperf_opt.i
+++ b/bench/wtperf/wtperf_opt.i
@@ -105,7 +105,7 @@ DEF_OPT_AS_UINT32(database_count, 1,
" threads")
DEF_OPT_AS_UINT32(icount, 5000,
"number of records to initially populate. If multiple tables are "
- "configured, each table has this many items inserted.")
+ "configured the count is spread evenly across all tables.")
DEF_OPT_AS_BOOL(insert_rmw, 0,
"execute a read prior to each insert in workload phase")
DEF_OPT_AS_UINT32(key_sz, 20, "key size")
diff --git a/dist/stat_data.py b/dist/stat_data.py
index 9fa1fc5b158..1e4f1b41cb9 100644
--- a/dist/stat_data.py
+++ b/dist/stat_data.py
@@ -148,6 +148,7 @@ connection_stats = [
'maximum bytes configured', 'no_clear,no_scale'),
CacheStat('cache_bytes_read', 'bytes read into cache'),
CacheStat('cache_bytes_write', 'bytes written from cache'),
+ CacheStat('cache_eviction_app', 'pages evicted by application threads'),
CacheStat('cache_eviction_clean', 'unmodified pages evicted'),
CacheStat('cache_eviction_deepen',
'page split during eviction deepened the tree'),
diff --git a/src/btree/bt_evict.c b/src/btree/bt_evict.c
index 2d3da44fe28..2af9f0024db 100644
--- a/src/btree/bt_evict.c
+++ b/src/btree/bt_evict.c
@@ -1266,6 +1266,9 @@ __wt_evict_lru_page(WT_SESSION_IMPL *session, int is_app)
WT_PAGE *page;
WT_REF *ref;
+ if (is_app)
+ WT_STAT_FAST_CONN_INCR(session, cache_eviction_app);
+
WT_RET(__evict_get_ref(session, is_app, &btree, &ref));
WT_ASSERT(session, ref->state == WT_REF_LOCKED);
diff --git a/src/docs/wtperf.dox b/src/docs/wtperf.dox
index f07ce13f80c..b0139286ab4 100644
--- a/src/docs/wtperf.dox
+++ b/src/docs/wtperf.dox
@@ -161,7 +161,7 @@ workload using a separate home directory and complete set of worker
threads
@par icount (unsigned int, default=5000)
number of records to initially populate. If multiple tables are
-configured, each table has this many items inserted.
+configured the count is spread evenly across all tables.
@par insert_rmw (boolean, default=false)
execute a read prior to each insert in workload phase
@par key_sz (unsigned int, default=20)
diff --git a/src/include/stat.h b/src/include/stat.h
index 2baf6a07be3..879394e2cc5 100644
--- a/src/include/stat.h
+++ b/src/include/stat.h
@@ -156,6 +156,7 @@ struct __wt_connection_stats {
WT_STATS cache_bytes_max;
WT_STATS cache_bytes_read;
WT_STATS cache_bytes_write;
+ WT_STATS cache_eviction_app;
WT_STATS cache_eviction_checkpoint;
WT_STATS cache_eviction_clean;
WT_STATS cache_eviction_deepen;
diff --git a/src/include/wiredtiger.in b/src/include/wiredtiger.in
index 5f77e528e49..6edbe55197e 100644
--- a/src/include/wiredtiger.in
+++ b/src/include/wiredtiger.in
@@ -3104,182 +3104,184 @@ extern int wiredtiger_extension_terminate(WT_CONNECTION *connection);
#define WT_STAT_CONN_CACHE_BYTES_READ 1023
/*! cache: bytes written from cache */
#define WT_STAT_CONN_CACHE_BYTES_WRITE 1024
+/*! cache: pages evicted by application threads */
+#define WT_STAT_CONN_CACHE_EVICTION_APP 1025
/*! cache: checkpoint blocked page eviction */
-#define WT_STAT_CONN_CACHE_EVICTION_CHECKPOINT 1025
+#define WT_STAT_CONN_CACHE_EVICTION_CHECKPOINT 1026
/*! cache: unmodified pages evicted */
-#define WT_STAT_CONN_CACHE_EVICTION_CLEAN 1026
+#define WT_STAT_CONN_CACHE_EVICTION_CLEAN 1027
/*! cache: page split during eviction deepened the tree */
-#define WT_STAT_CONN_CACHE_EVICTION_DEEPEN 1027
+#define WT_STAT_CONN_CACHE_EVICTION_DEEPEN 1028
/*! cache: modified pages evicted */
-#define WT_STAT_CONN_CACHE_EVICTION_DIRTY 1028
+#define WT_STAT_CONN_CACHE_EVICTION_DIRTY 1029
/*! cache: pages selected for eviction unable to be evicted */
-#define WT_STAT_CONN_CACHE_EVICTION_FAIL 1029
+#define WT_STAT_CONN_CACHE_EVICTION_FAIL 1030
/*! cache: pages evicted because they exceeded the in-memory maximum */
-#define WT_STAT_CONN_CACHE_EVICTION_FORCE 1030
+#define WT_STAT_CONN_CACHE_EVICTION_FORCE 1031
/*! cache: failed eviction of pages that exceeded the in-memory maximum */
-#define WT_STAT_CONN_CACHE_EVICTION_FORCE_FAIL 1031
+#define WT_STAT_CONN_CACHE_EVICTION_FORCE_FAIL 1032
/*! cache: hazard pointer blocked page eviction */
-#define WT_STAT_CONN_CACHE_EVICTION_HAZARD 1032
+#define WT_STAT_CONN_CACHE_EVICTION_HAZARD 1033
/*! cache: internal pages evicted */
-#define WT_STAT_CONN_CACHE_EVICTION_INTERNAL 1033
+#define WT_STAT_CONN_CACHE_EVICTION_INTERNAL 1034
/*! cache: eviction server candidate queue empty when topping up */
-#define WT_STAT_CONN_CACHE_EVICTION_QUEUE_EMPTY 1034
+#define WT_STAT_CONN_CACHE_EVICTION_QUEUE_EMPTY 1035
/*! cache: eviction server candidate queue not empty when topping up */
-#define WT_STAT_CONN_CACHE_EVICTION_QUEUE_NOT_EMPTY 1035
+#define WT_STAT_CONN_CACHE_EVICTION_QUEUE_NOT_EMPTY 1036
/*! cache: eviction server evicting pages */
-#define WT_STAT_CONN_CACHE_EVICTION_SERVER_EVICTING 1036
+#define WT_STAT_CONN_CACHE_EVICTION_SERVER_EVICTING 1037
/*! cache: eviction server populating queue, but not evicting pages */
-#define WT_STAT_CONN_CACHE_EVICTION_SERVER_NOT_EVICTING 1037
+#define WT_STAT_CONN_CACHE_EVICTION_SERVER_NOT_EVICTING 1038
/*! cache: eviction server unable to reach eviction goal */
-#define WT_STAT_CONN_CACHE_EVICTION_SLOW 1038
+#define WT_STAT_CONN_CACHE_EVICTION_SLOW 1039
/*! cache: pages split during eviction */
-#define WT_STAT_CONN_CACHE_EVICTION_SPLIT 1039
+#define WT_STAT_CONN_CACHE_EVICTION_SPLIT 1040
/*! cache: pages walked for eviction */
-#define WT_STAT_CONN_CACHE_EVICTION_WALK 1040
+#define WT_STAT_CONN_CACHE_EVICTION_WALK 1041
/*! cache: in-memory page splits */
-#define WT_STAT_CONN_CACHE_INMEM_SPLIT 1041
+#define WT_STAT_CONN_CACHE_INMEM_SPLIT 1042
/*! cache: tracked dirty pages in the cache */
-#define WT_STAT_CONN_CACHE_PAGES_DIRTY 1042
+#define WT_STAT_CONN_CACHE_PAGES_DIRTY 1043
/*! cache: pages currently held in the cache */
-#define WT_STAT_CONN_CACHE_PAGES_INUSE 1043
+#define WT_STAT_CONN_CACHE_PAGES_INUSE 1044
/*! cache: pages read into cache */
-#define WT_STAT_CONN_CACHE_READ 1044
+#define WT_STAT_CONN_CACHE_READ 1045
/*! cache: pages written from cache */
-#define WT_STAT_CONN_CACHE_WRITE 1045
+#define WT_STAT_CONN_CACHE_WRITE 1046
/*! connection: pthread mutex condition wait calls */
-#define WT_STAT_CONN_COND_WAIT 1046
+#define WT_STAT_CONN_COND_WAIT 1047
/*! cursor: cursor create calls */
-#define WT_STAT_CONN_CURSOR_CREATE 1047
+#define WT_STAT_CONN_CURSOR_CREATE 1048
/*! cursor: cursor insert calls */
-#define WT_STAT_CONN_CURSOR_INSERT 1048
+#define WT_STAT_CONN_CURSOR_INSERT 1049
/*! cursor: cursor next calls */
-#define WT_STAT_CONN_CURSOR_NEXT 1049
+#define WT_STAT_CONN_CURSOR_NEXT 1050
/*! cursor: cursor prev calls */
-#define WT_STAT_CONN_CURSOR_PREV 1050
+#define WT_STAT_CONN_CURSOR_PREV 1051
/*! cursor: cursor remove calls */
-#define WT_STAT_CONN_CURSOR_REMOVE 1051
+#define WT_STAT_CONN_CURSOR_REMOVE 1052
/*! cursor: cursor reset calls */
-#define WT_STAT_CONN_CURSOR_RESET 1052
+#define WT_STAT_CONN_CURSOR_RESET 1053
/*! cursor: cursor search calls */
-#define WT_STAT_CONN_CURSOR_SEARCH 1053
+#define WT_STAT_CONN_CURSOR_SEARCH 1054
/*! cursor: cursor search near calls */
-#define WT_STAT_CONN_CURSOR_SEARCH_NEAR 1054
+#define WT_STAT_CONN_CURSOR_SEARCH_NEAR 1055
/*! cursor: cursor update calls */
-#define WT_STAT_CONN_CURSOR_UPDATE 1055
+#define WT_STAT_CONN_CURSOR_UPDATE 1056
/*! data-handle: session dhandles swept */
-#define WT_STAT_CONN_DH_SESSION_HANDLES 1056
+#define WT_STAT_CONN_DH_SESSION_HANDLES 1057
/*! data-handle: session sweep attempts */
-#define WT_STAT_CONN_DH_SESSION_SWEEPS 1057
+#define WT_STAT_CONN_DH_SESSION_SWEEPS 1058
/*! connection: files currently open */
-#define WT_STAT_CONN_FILE_OPEN 1058
+#define WT_STAT_CONN_FILE_OPEN 1059
/*! log: log buffer size increases */
-#define WT_STAT_CONN_LOG_BUFFER_GROW 1059
+#define WT_STAT_CONN_LOG_BUFFER_GROW 1060
/*! log: total log buffer size */
-#define WT_STAT_CONN_LOG_BUFFER_SIZE 1060
+#define WT_STAT_CONN_LOG_BUFFER_SIZE 1061
/*! log: log bytes of payload data */
-#define WT_STAT_CONN_LOG_BYTES_PAYLOAD 1061
+#define WT_STAT_CONN_LOG_BYTES_PAYLOAD 1062
/*! log: log bytes written */
-#define WT_STAT_CONN_LOG_BYTES_WRITTEN 1062
+#define WT_STAT_CONN_LOG_BYTES_WRITTEN 1063
/*! log: yields waiting for previous log file close */
-#define WT_STAT_CONN_LOG_CLOSE_YIELDS 1063
+#define WT_STAT_CONN_LOG_CLOSE_YIELDS 1064
/*! log: maximum log file size */
-#define WT_STAT_CONN_LOG_MAX_FILESIZE 1064
+#define WT_STAT_CONN_LOG_MAX_FILESIZE 1065
/*! log: log read operations */
-#define WT_STAT_CONN_LOG_READS 1065
+#define WT_STAT_CONN_LOG_READS 1066
/*! log: records processed by log scan */
-#define WT_STAT_CONN_LOG_SCAN_RECORDS 1066
+#define WT_STAT_CONN_LOG_SCAN_RECORDS 1067
/*! log: log scan records requiring two reads */
-#define WT_STAT_CONN_LOG_SCAN_REREADS 1067
+#define WT_STAT_CONN_LOG_SCAN_REREADS 1068
/*! log: log scan operations */
-#define WT_STAT_CONN_LOG_SCANS 1068
+#define WT_STAT_CONN_LOG_SCANS 1069
/*! log: consolidated slot closures */
-#define WT_STAT_CONN_LOG_SLOT_CLOSES 1069
+#define WT_STAT_CONN_LOG_SLOT_CLOSES 1070
/*! log: logging bytes consolidated */
-#define WT_STAT_CONN_LOG_SLOT_CONSOLIDATED 1070
+#define WT_STAT_CONN_LOG_SLOT_CONSOLIDATED 1071
/*! log: consolidated slot joins */
-#define WT_STAT_CONN_LOG_SLOT_JOINS 1071
+#define WT_STAT_CONN_LOG_SLOT_JOINS 1072
/*! log: consolidated slot join races */
-#define WT_STAT_CONN_LOG_SLOT_RACES 1072
+#define WT_STAT_CONN_LOG_SLOT_RACES 1073
/*! log: slots selected for switching that were unavailable */
-#define WT_STAT_CONN_LOG_SLOT_SWITCH_FAILS 1073
+#define WT_STAT_CONN_LOG_SLOT_SWITCH_FAILS 1074
/*! log: record size exceeded maximum */
-#define WT_STAT_CONN_LOG_SLOT_TOOBIG 1074
+#define WT_STAT_CONN_LOG_SLOT_TOOBIG 1075
/*! log: failed to find a slot large enough for record */
-#define WT_STAT_CONN_LOG_SLOT_TOOSMALL 1075
+#define WT_STAT_CONN_LOG_SLOT_TOOSMALL 1076
/*! log: consolidated slot join transitions */
-#define WT_STAT_CONN_LOG_SLOT_TRANSITIONS 1076
+#define WT_STAT_CONN_LOG_SLOT_TRANSITIONS 1077
/*! log: log sync operations */
-#define WT_STAT_CONN_LOG_SYNC 1077
+#define WT_STAT_CONN_LOG_SYNC 1078
/*! log: log write operations */
-#define WT_STAT_CONN_LOG_WRITES 1078
+#define WT_STAT_CONN_LOG_WRITES 1079
/*! LSM: sleep for LSM checkpoint throttle */
-#define WT_STAT_CONN_LSM_CHECKPOINT_THROTTLE 1079
+#define WT_STAT_CONN_LSM_CHECKPOINT_THROTTLE 1080
/*! LSM: sleep for LSM merge throttle */
-#define WT_STAT_CONN_LSM_MERGE_THROTTLE 1080
+#define WT_STAT_CONN_LSM_MERGE_THROTTLE 1081
/*! LSM: rows merged in an LSM tree */
-#define WT_STAT_CONN_LSM_ROWS_MERGED 1081
+#define WT_STAT_CONN_LSM_ROWS_MERGED 1082
/*! LSM: application work units currently queued */
-#define WT_STAT_CONN_LSM_WORK_QUEUE_APP 1082
+#define WT_STAT_CONN_LSM_WORK_QUEUE_APP 1083
/*! LSM: merge work units currently queued */
-#define WT_STAT_CONN_LSM_WORK_QUEUE_MANAGER 1083
+#define WT_STAT_CONN_LSM_WORK_QUEUE_MANAGER 1084
/*! LSM: tree queue hit maximum */
-#define WT_STAT_CONN_LSM_WORK_QUEUE_MAX 1084
+#define WT_STAT_CONN_LSM_WORK_QUEUE_MAX 1085
/*! LSM: switch work units currently queued */
-#define WT_STAT_CONN_LSM_WORK_QUEUE_SWITCH 1085
+#define WT_STAT_CONN_LSM_WORK_QUEUE_SWITCH 1086
/*! LSM: tree maintenance operations scheduled */
-#define WT_STAT_CONN_LSM_WORK_UNITS_CREATED 1086
+#define WT_STAT_CONN_LSM_WORK_UNITS_CREATED 1087
/*! LSM: tree maintenance operations discarded */
-#define WT_STAT_CONN_LSM_WORK_UNITS_DISCARDED 1087
+#define WT_STAT_CONN_LSM_WORK_UNITS_DISCARDED 1088
/*! LSM: tree maintenance operations executed */
-#define WT_STAT_CONN_LSM_WORK_UNITS_DONE 1088
+#define WT_STAT_CONN_LSM_WORK_UNITS_DONE 1089
/*! connection: memory allocations */
-#define WT_STAT_CONN_MEMORY_ALLOCATION 1089
+#define WT_STAT_CONN_MEMORY_ALLOCATION 1090
/*! connection: memory frees */
-#define WT_STAT_CONN_MEMORY_FREE 1090
+#define WT_STAT_CONN_MEMORY_FREE 1091
/*! connection: memory re-allocations */
-#define WT_STAT_CONN_MEMORY_GROW 1091
+#define WT_STAT_CONN_MEMORY_GROW 1092
/*! connection: total read I/Os */
-#define WT_STAT_CONN_READ_IO 1092
+#define WT_STAT_CONN_READ_IO 1093
/*! reconciliation: page reconciliation calls */
-#define WT_STAT_CONN_REC_PAGES 1093
+#define WT_STAT_CONN_REC_PAGES 1094
/*! reconciliation: page reconciliation calls for eviction */
-#define WT_STAT_CONN_REC_PAGES_EVICTION 1094
+#define WT_STAT_CONN_REC_PAGES_EVICTION 1095
/*! reconciliation: split bytes currently awaiting free */
-#define WT_STAT_CONN_REC_SPLIT_STASHED_BYTES 1095
+#define WT_STAT_CONN_REC_SPLIT_STASHED_BYTES 1096
/*! reconciliation: split objects currently awaiting free */
-#define WT_STAT_CONN_REC_SPLIT_STASHED_OBJECTS 1096
+#define WT_STAT_CONN_REC_SPLIT_STASHED_OBJECTS 1097
/*! connection: pthread mutex shared lock read-lock calls */
-#define WT_STAT_CONN_RWLOCK_READ 1097
+#define WT_STAT_CONN_RWLOCK_READ 1098
/*! connection: pthread mutex shared lock write-lock calls */
-#define WT_STAT_CONN_RWLOCK_WRITE 1098
+#define WT_STAT_CONN_RWLOCK_WRITE 1099
/*! session: open cursor count */
-#define WT_STAT_CONN_SESSION_CURSOR_OPEN 1099
+#define WT_STAT_CONN_SESSION_CURSOR_OPEN 1100
/*! session: open session count */
-#define WT_STAT_CONN_SESSION_OPEN 1100
+#define WT_STAT_CONN_SESSION_OPEN 1101
/*! transaction: transaction begins */
-#define WT_STAT_CONN_TXN_BEGIN 1101
+#define WT_STAT_CONN_TXN_BEGIN 1102
/*! transaction: transaction checkpoints */
-#define WT_STAT_CONN_TXN_CHECKPOINT 1102
+#define WT_STAT_CONN_TXN_CHECKPOINT 1103
/*! transaction: transaction checkpoint currently running */
-#define WT_STAT_CONN_TXN_CHECKPOINT_RUNNING 1103
+#define WT_STAT_CONN_TXN_CHECKPOINT_RUNNING 1104
/*! transaction: transaction checkpoint max time (msecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_MAX 1104
+#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_MAX 1105
/*! transaction: transaction checkpoint min time (msecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_MIN 1105
+#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_MIN 1106
/*! transaction: transaction checkpoint most recent time (msecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_RECENT 1106
+#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_RECENT 1107
/*! transaction: transaction checkpoint total time (msecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_TOTAL 1107
+#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_TOTAL 1108
/*! transaction: transactions committed */
-#define WT_STAT_CONN_TXN_COMMIT 1108
+#define WT_STAT_CONN_TXN_COMMIT 1109
/*! transaction: transaction failures due to cache overflow */
-#define WT_STAT_CONN_TXN_FAIL_CACHE 1109
+#define WT_STAT_CONN_TXN_FAIL_CACHE 1110
/*! transaction: transaction range of IDs currently pinned */
-#define WT_STAT_CONN_TXN_PINNED_RANGE 1110
+#define WT_STAT_CONN_TXN_PINNED_RANGE 1111
/*! transaction: transactions rolled back */
-#define WT_STAT_CONN_TXN_ROLLBACK 1111
+#define WT_STAT_CONN_TXN_ROLLBACK 1112
/*! connection: total write I/Os */
-#define WT_STAT_CONN_WRITE_IO 1112
+#define WT_STAT_CONN_WRITE_IO 1113
/*!
* @}
diff --git a/src/support/stat.c b/src/support/stat.c
index c6aa4fff6a7..ac0b854c9df 100644
--- a/src/support/stat.c
+++ b/src/support/stat.c
@@ -373,6 +373,8 @@ __wt_stat_init_connection_stats(WT_CONNECTION_STATS *stats)
"cache: pages currently held in the cache";
stats->cache_eviction_force.desc =
"cache: pages evicted because they exceeded the in-memory maximum";
+ stats->cache_eviction_app.desc =
+ "cache: pages evicted by application threads";
stats->cache_read.desc = "cache: pages read into cache";
stats->cache_eviction_fail.desc =
"cache: pages selected for eviction unable to be evicted";
@@ -520,6 +522,7 @@ __wt_stat_refresh_connection_stats(void *stats_arg)
stats->cache_eviction_dirty.v = 0;
stats->cache_eviction_deepen.v = 0;
stats->cache_eviction_force.v = 0;
+ stats->cache_eviction_app.v = 0;
stats->cache_read.v = 0;
stats->cache_eviction_fail.v = 0;
stats->cache_eviction_split.v = 0;