summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bench/wtperf/wtperf.h1
-rw-r--r--dist/flags.py3
-rw-r--r--dist/stat_data.py1
-rw-r--r--src/block/block_ckpt.c2
-rw-r--r--src/block/block_ext.c2
-rw-r--r--src/block/block_mgr.c13
-rw-r--r--src/block/block_write.c13
-rw-r--r--src/btree/bt_io.c6
-rw-r--r--src/btree/bt_sync.c6
-rw-r--r--src/include/block.h2
-rw-r--r--src/include/extern.h6
-rw-r--r--src/include/flags.h15
-rw-r--r--src/include/stat.h1
-rw-r--r--src/include/wiredtiger.in334
-rw-r--r--src/reconcile/rec_write.c10
-rw-r--r--src/support/stat.c4
16 files changed, 219 insertions, 200 deletions
diff --git a/bench/wtperf/wtperf.h b/bench/wtperf/wtperf.h
index d874fa4eefe..a316b40d7fa 100644
--- a/bench/wtperf/wtperf.h
+++ b/bench/wtperf/wtperf.h
@@ -83,7 +83,6 @@ typedef struct {
typedef struct {
uint64_t stone_gap;
uint64_t needed_stones;
- uint64_t final_stone_gap;
uint64_t expected_total;
uint64_t total_inserts;
uint64_t last_total_inserts;
diff --git a/dist/flags.py b/dist/flags.py
index b661fa348fa..7763c661259 100644
--- a/dist/flags.py
+++ b/dist/flags.py
@@ -37,10 +37,11 @@ flags = {
'READ_WONT_NEED',
],
'rec_write' : [
+ 'CHECKPOINTING',
'EVICTING',
'EVICT_CLEAN',
- 'EVICT_IN_MEMORY',
'EVICT_INMEM_SPLIT',
+ 'EVICT_IN_MEMORY',
'EVICT_LOOKASIDE',
'EVICT_UPDATE_RESTORE',
'VISIBILITY_ERR',
diff --git a/dist/stat_data.py b/dist/stat_data.py
index a1908e4e67c..b7a1caa6701 100644
--- a/dist/stat_data.py
+++ b/dist/stat_data.py
@@ -159,6 +159,7 @@ connection_stats = [
BlockStat('block_byte_map_read', 'mapped bytes read', 'size'),
BlockStat('block_byte_read', 'bytes read', 'size'),
BlockStat('block_byte_write', 'bytes written', 'size'),
+ BlockStat('block_byte_write_checkpoint', 'bytes written for checkpoint', 'size'),
BlockStat('block_map_read', 'mapped blocks read'),
BlockStat('block_preload', 'blocks pre-loaded'),
BlockStat('block_read', 'blocks read'),
diff --git a/src/block/block_ckpt.c b/src/block/block_ckpt.c
index b9f0ec25d53..3584efc7671 100644
--- a/src/block/block_ckpt.c
+++ b/src/block/block_ckpt.c
@@ -252,7 +252,7 @@ __wt_block_checkpoint(WT_SESSION_IMPL *session,
} else
WT_ERR(__wt_block_write_off(session, block, buf,
&ci->root_offset, &ci->root_size, &ci->root_cksum,
- data_cksum, false));
+ data_cksum, true, false));
/*
* Checkpoints are potentially reading/writing/merging lots of blocks,
diff --git a/src/block/block_ext.c b/src/block/block_ext.c
index e5561a01ed9..d1d02045865 100644
--- a/src/block/block_ext.c
+++ b/src/block/block_ext.c
@@ -1311,7 +1311,7 @@ __wt_block_extlist_write(WT_SESSION_IMPL *session,
/* Write the extent list to disk. */
WT_ERR(__wt_block_write_off(session,
- block, tmp, &el->offset, &el->size, &el->cksum, true, true));
+ block, tmp, &el->offset, &el->size, &el->cksum, true, true, true));
/*
* Remove the allocated blocks from the system's allocation list, extent
diff --git a/src/block/block_mgr.c b/src/block/block_mgr.c
index 971fe713f83..eff25f34304 100644
--- a/src/block/block_mgr.c
+++ b/src/block/block_mgr.c
@@ -479,11 +479,11 @@ __bm_verify_start(WT_BM *bm,
* Write a buffer into a block, returning the block's address cookie.
*/
static int
-__bm_write(WT_BM *bm, WT_SESSION_IMPL *session,
- WT_ITEM *buf, uint8_t *addr, size_t *addr_sizep, bool data_cksum)
+__bm_write(WT_BM *bm, WT_SESSION_IMPL *session, WT_ITEM *buf,
+ uint8_t *addr, size_t *addr_sizep, bool data_cksum, bool checkpoint_io)
{
- return (__wt_block_write(
- session, bm->block, buf, addr, addr_sizep, data_cksum));
+ return (__wt_block_write(session,
+ bm->block, buf, addr, addr_sizep, data_cksum, checkpoint_io));
}
/*
@@ -492,13 +492,14 @@ __bm_write(WT_BM *bm, WT_SESSION_IMPL *session,
* readonly version.
*/
static int
-__bm_write_readonly(WT_BM *bm, WT_SESSION_IMPL *session,
- WT_ITEM *buf, uint8_t *addr, size_t *addr_sizep, bool data_cksum)
+__bm_write_readonly(WT_BM *bm, WT_SESSION_IMPL *session, WT_ITEM *buf,
+ uint8_t *addr, size_t *addr_sizep, bool data_cksum, bool checkpoint_io)
{
WT_UNUSED(buf);
WT_UNUSED(addr);
WT_UNUSED(addr_sizep);
WT_UNUSED(data_cksum);
+ WT_UNUSED(checkpoint_io);
return (__bm_readonly(bm, session));
}
diff --git a/src/block/block_write.c b/src/block/block_write.c
index 1fefeee09da..e6e992436a3 100644
--- a/src/block/block_write.c
+++ b/src/block/block_write.c
@@ -210,15 +210,15 @@ __wt_block_write_size(WT_SESSION_IMPL *session, WT_BLOCK *block, size_t *sizep)
* Write a buffer into a block, returning the block's address cookie.
*/
int
-__wt_block_write(WT_SESSION_IMPL *session, WT_BLOCK *block,
- WT_ITEM *buf, uint8_t *addr, size_t *addr_sizep, bool data_cksum)
+__wt_block_write(WT_SESSION_IMPL *session, WT_BLOCK *block, WT_ITEM *buf,
+ uint8_t *addr, size_t *addr_sizep, bool data_cksum, bool checkpoint_io)
{
wt_off_t offset;
uint32_t size, cksum;
uint8_t *endp;
- WT_RET(__wt_block_write_off(
- session, block, buf, &offset, &size, &cksum, data_cksum, false));
+ WT_RET(__wt_block_write_off(session, block,
+ buf, &offset, &size, &cksum, data_cksum, checkpoint_io, false));
endp = addr;
WT_RET(__wt_block_addr_to_buffer(block, &endp, offset, size, cksum));
@@ -235,7 +235,7 @@ __wt_block_write(WT_SESSION_IMPL *session, WT_BLOCK *block,
int
__wt_block_write_off(WT_SESSION_IMPL *session, WT_BLOCK *block,
WT_ITEM *buf, wt_off_t *offsetp, uint32_t *sizep, uint32_t *cksump,
- bool data_cksum, bool caller_locked)
+ bool data_cksum, bool checkpoint_io, bool caller_locked)
{
WT_BLOCK_HEADER *blk;
WT_DECL_RET;
@@ -380,6 +380,9 @@ __wt_block_write_off(WT_SESSION_IMPL *session, WT_BLOCK *block,
WT_STAT_FAST_CONN_INCR(session, block_write);
WT_STAT_FAST_CONN_INCRV(session, block_byte_write, align_size);
+ if (checkpoint_io)
+ WT_STAT_FAST_CONN_INCRV(
+ session, block_byte_write_checkpoint, align_size);
WT_RET(__wt_verbose(session, WT_VERB_WRITE,
"off %" PRIuMAX ", size %" PRIuMAX ", cksum %" PRIu32,
diff --git a/src/btree/bt_io.c b/src/btree/bt_io.c
index 4339de6f25c..888051cbe79 100644
--- a/src/btree/bt_io.c
+++ b/src/btree/bt_io.c
@@ -168,7 +168,8 @@ err: __wt_scr_free(session, &tmp);
*/
int
__wt_bt_write(WT_SESSION_IMPL *session, WT_ITEM *buf,
- uint8_t *addr, size_t *addr_sizep, bool checkpoint, bool compressed)
+ uint8_t *addr, size_t *addr_sizep,
+ bool checkpoint, bool checkpoint_io, bool compressed)
{
WT_BM *bm;
WT_BTREE *btree;
@@ -359,7 +360,8 @@ __wt_bt_write(WT_SESSION_IMPL *session, WT_ITEM *buf,
/* Call the block manager to write the block. */
WT_ERR(checkpoint ?
bm->checkpoint(bm, session, ip, btree->ckpt, data_cksum) :
- bm->write(bm, session, ip, addr, addr_sizep, data_cksum));
+ bm->write(
+ bm, session, ip, addr, addr_sizep, data_cksum, checkpoint_io));
WT_STAT_FAST_CONN_INCR(session, cache_write);
WT_STAT_FAST_DATA_INCR(session, cache_write);
diff --git a/src/btree/bt_sync.c b/src/btree/bt_sync.c
index 1371ed5ad49..412358fed05 100644
--- a/src/btree/bt_sync.c
+++ b/src/btree/bt_sync.c
@@ -86,7 +86,8 @@ __sync_file(WT_SESSION_IMPL *session, WT_CACHE_OP syncop)
WT_ERR(__wt_txn_get_snapshot(session));
leaf_bytes += page->memory_footprint;
++leaf_pages;
- WT_ERR(__wt_reconcile(session, walk, NULL, 0));
+ WT_ERR(__wt_reconcile(
+ session, walk, NULL, WT_CHECKPOINTING));
}
}
break;
@@ -195,7 +196,8 @@ __sync_file(WT_SESSION_IMPL *session, WT_CACHE_OP syncop)
leaf_bytes += page->memory_footprint;
++leaf_pages;
}
- WT_ERR(__wt_reconcile(session, walk, NULL, 0));
+ WT_ERR(__wt_reconcile(
+ session, walk, NULL, WT_CHECKPOINTING));
}
break;
case WT_SYNC_CLOSE:
diff --git a/src/include/block.h b/src/include/block.h
index a8080c1651c..3342f9b1e5e 100644
--- a/src/include/block.h
+++ b/src/include/block.h
@@ -192,7 +192,7 @@ struct __wt_bm {
int (*verify_start)
(WT_BM *, WT_SESSION_IMPL *, WT_CKPT *, const char *[]);
int (*write) (WT_BM *,
- WT_SESSION_IMPL *, WT_ITEM *, uint8_t *, size_t *, bool);
+ WT_SESSION_IMPL *, WT_ITEM *, uint8_t *, size_t *, bool, bool);
int (*write_size)(WT_BM *, WT_SESSION_IMPL *, size_t *);
WT_BLOCK *block; /* Underlying file */
diff --git a/src/include/extern.h b/src/include/extern.h
index 2340f1d66a0..0cf8151b674 100644
--- a/src/include/extern.h
+++ b/src/include/extern.h
@@ -76,8 +76,8 @@ extern int __wt_block_verify_addr(WT_SESSION_IMPL *session, WT_BLOCK *block, con
extern int __wt_block_truncate(WT_SESSION_IMPL *session, WT_BLOCK *block, wt_off_t len);
extern int __wt_block_discard(WT_SESSION_IMPL *session, WT_BLOCK *block, size_t added_size);
extern int __wt_block_write_size(WT_SESSION_IMPL *session, WT_BLOCK *block, size_t *sizep);
-extern int __wt_block_write(WT_SESSION_IMPL *session, WT_BLOCK *block, WT_ITEM *buf, uint8_t *addr, size_t *addr_sizep, bool data_cksum);
-extern int __wt_block_write_off(WT_SESSION_IMPL *session, WT_BLOCK *block, WT_ITEM *buf, wt_off_t *offsetp, uint32_t *sizep, uint32_t *cksump, bool data_cksum, bool caller_locked);
+extern int __wt_block_write(WT_SESSION_IMPL *session, WT_BLOCK *block, WT_ITEM *buf, uint8_t *addr, size_t *addr_sizep, bool data_cksum, bool checkpoint_io);
+extern int __wt_block_write_off(WT_SESSION_IMPL *session, WT_BLOCK *block, WT_ITEM *buf, wt_off_t *offsetp, uint32_t *sizep, uint32_t *cksump, bool data_cksum, bool checkpoint_io, bool caller_locked);
extern int __wt_bloom_create( WT_SESSION_IMPL *session, const char *uri, const char *config, uint64_t count, uint32_t factor, uint32_t k, WT_BLOOM **bloomp);
extern int __wt_bloom_open(WT_SESSION_IMPL *session, const char *uri, uint32_t factor, uint32_t k, WT_CURSOR *owner, WT_BLOOM **bloomp);
extern int __wt_bloom_insert(WT_BLOOM *bloom, WT_ITEM *key);
@@ -139,7 +139,7 @@ extern void __wt_btree_evictable(WT_SESSION_IMPL *session, bool on);
extern int __wt_btree_huffman_open(WT_SESSION_IMPL *session);
extern void __wt_btree_huffman_close(WT_SESSION_IMPL *session);
extern int __wt_bt_read(WT_SESSION_IMPL *session, WT_ITEM *buf, const uint8_t *addr, size_t addr_size);
-extern int __wt_bt_write(WT_SESSION_IMPL *session, WT_ITEM *buf, uint8_t *addr, size_t *addr_sizep, bool checkpoint, bool compressed);
+extern int __wt_bt_write(WT_SESSION_IMPL *session, WT_ITEM *buf, uint8_t *addr, size_t *addr_sizep, bool checkpoint, bool checkpoint_io, bool compressed);
extern const char *__wt_page_type_string(u_int type);
extern const char *__wt_cell_type_string(uint8_t type);
extern const char *__wt_page_addr_string(WT_SESSION_IMPL *session, WT_REF *ref, WT_ITEM *buf);
diff --git a/src/include/flags.h b/src/include/flags.h
index 2145174ca6f..a411e997793 100644
--- a/src/include/flags.h
+++ b/src/include/flags.h
@@ -2,6 +2,7 @@
* DO NOT EDIT: automatically built by dist/flags.py.
* flags section: BEGIN
*/
+#define WT_CHECKPOINTING 0x00000001
#define WT_CONN_CACHE_POOL 0x00000001
#define WT_CONN_CKPT_SYNC 0x00000002
#define WT_CONN_CLOSING 0x00000004
@@ -21,12 +22,12 @@
#define WT_CONN_SERVER_STATISTICS 0x00010000
#define WT_CONN_SERVER_SWEEP 0x00020000
#define WT_CONN_WAS_BACKUP 0x00040000
-#define WT_EVICTING 0x00000001
-#define WT_EVICT_CLEAN 0x00000002
-#define WT_EVICT_INMEM_SPLIT 0x00000004
-#define WT_EVICT_IN_MEMORY 0x00000008
-#define WT_EVICT_LOOKASIDE 0x00000010
-#define WT_EVICT_UPDATE_RESTORE 0x00000020
+#define WT_EVICTING 0x00000002
+#define WT_EVICT_CLEAN 0x00000004
+#define WT_EVICT_INMEM_SPLIT 0x00000008
+#define WT_EVICT_IN_MEMORY 0x00000010
+#define WT_EVICT_LOOKASIDE 0x00000020
+#define WT_EVICT_UPDATE_RESTORE 0x00000040
#define WT_LOGSCAN_FIRST 0x00000001
#define WT_LOGSCAN_FROM_CKP 0x00000002
#define WT_LOGSCAN_ONE 0x00000004
@@ -102,7 +103,7 @@
#define WT_VERB_VERIFY 0x00800000
#define WT_VERB_VERSION 0x01000000
#define WT_VERB_WRITE 0x02000000
-#define WT_VISIBILITY_ERR 0x00000040
+#define WT_VISIBILITY_ERR 0x00000080
/*
* flags section: END
* DO NOT EDIT: automatically built by dist/flags.py.
diff --git a/src/include/stat.h b/src/include/stat.h
index f2ba17da1d1..252e6fbb972 100644
--- a/src/include/stat.h
+++ b/src/include/stat.h
@@ -273,6 +273,7 @@ struct __wt_connection_stats {
int64_t block_write;
int64_t block_byte_read;
int64_t block_byte_write;
+ int64_t block_byte_write_checkpoint;
int64_t block_map_read;
int64_t block_byte_map_read;
int64_t cache_bytes_image;
diff --git a/src/include/wiredtiger.in b/src/include/wiredtiger.in
index 3057bb5a6a9..5b773c93e58 100644
--- a/src/include/wiredtiger.in
+++ b/src/include/wiredtiger.in
@@ -4261,344 +4261,346 @@ extern int wiredtiger_extension_terminate(WT_CONNECTION *connection);
#define WT_STAT_CONN_BLOCK_BYTE_READ 1026
/*! block-manager: bytes written */
#define WT_STAT_CONN_BLOCK_BYTE_WRITE 1027
+/*! block-manager: bytes written for checkpoint */
+#define WT_STAT_CONN_BLOCK_BYTE_WRITE_CHECKPOINT 1028
/*! block-manager: mapped blocks read */
-#define WT_STAT_CONN_BLOCK_MAP_READ 1028
+#define WT_STAT_CONN_BLOCK_MAP_READ 1029
/*! block-manager: mapped bytes read */
-#define WT_STAT_CONN_BLOCK_BYTE_MAP_READ 1029
+#define WT_STAT_CONN_BLOCK_BYTE_MAP_READ 1030
/*! cache: bytes belonging to page images in the cache */
-#define WT_STAT_CONN_CACHE_BYTES_IMAGE 1030
+#define WT_STAT_CONN_CACHE_BYTES_IMAGE 1031
/*! cache: bytes currently in the cache */
-#define WT_STAT_CONN_CACHE_BYTES_INUSE 1031
+#define WT_STAT_CONN_CACHE_BYTES_INUSE 1032
/*! cache: bytes not belonging to page images in the cache */
-#define WT_STAT_CONN_CACHE_BYTES_OTHER 1032
+#define WT_STAT_CONN_CACHE_BYTES_OTHER 1033
/*! cache: bytes read into cache */
-#define WT_STAT_CONN_CACHE_BYTES_READ 1033
+#define WT_STAT_CONN_CACHE_BYTES_READ 1034
/*! cache: bytes written from cache */
-#define WT_STAT_CONN_CACHE_BYTES_WRITE 1034
+#define WT_STAT_CONN_CACHE_BYTES_WRITE 1035
/*! cache: checkpoint blocked page eviction */
-#define WT_STAT_CONN_CACHE_EVICTION_CHECKPOINT 1035
+#define WT_STAT_CONN_CACHE_EVICTION_CHECKPOINT 1036
/*! cache: eviction calls to get a page */
-#define WT_STAT_CONN_CACHE_EVICTION_GET_REF 1036
+#define WT_STAT_CONN_CACHE_EVICTION_GET_REF 1037
/*! cache: eviction calls to get a page found queue empty */
-#define WT_STAT_CONN_CACHE_EVICTION_GET_REF_EMPTY 1037
+#define WT_STAT_CONN_CACHE_EVICTION_GET_REF_EMPTY 1038
/*! cache: eviction calls to get a page found queue empty after locking */
-#define WT_STAT_CONN_CACHE_EVICTION_GET_REF_EMPTY2 1038
+#define WT_STAT_CONN_CACHE_EVICTION_GET_REF_EMPTY2 1039
/*! cache: eviction currently operating in aggressive mode */
-#define WT_STAT_CONN_CACHE_EVICTION_AGGRESSIVE_SET 1039
+#define WT_STAT_CONN_CACHE_EVICTION_AGGRESSIVE_SET 1040
/*! cache: eviction server candidate queue empty when topping up */
-#define WT_STAT_CONN_CACHE_EVICTION_QUEUE_EMPTY 1040
+#define WT_STAT_CONN_CACHE_EVICTION_QUEUE_EMPTY 1041
/*! cache: eviction server candidate queue not empty when topping up */
-#define WT_STAT_CONN_CACHE_EVICTION_QUEUE_NOT_EMPTY 1041
+#define WT_STAT_CONN_CACHE_EVICTION_QUEUE_NOT_EMPTY 1042
/*! cache: eviction server evicting pages */
-#define WT_STAT_CONN_CACHE_EVICTION_SERVER_EVICTING 1042
+#define WT_STAT_CONN_CACHE_EVICTION_SERVER_EVICTING 1043
/*! cache: eviction server populating queue, but not evicting pages */
-#define WT_STAT_CONN_CACHE_EVICTION_SERVER_NOT_EVICTING 1043
+#define WT_STAT_CONN_CACHE_EVICTION_SERVER_NOT_EVICTING 1044
/*! cache: eviction server skipped very large page */
-#define WT_STAT_CONN_CACHE_EVICTION_SERVER_TOOBIG 1044
+#define WT_STAT_CONN_CACHE_EVICTION_SERVER_TOOBIG 1045
/*! cache: eviction server slept, because we did not make progress with
* eviction */
-#define WT_STAT_CONN_CACHE_EVICTION_SERVER_SLEPT 1045
+#define WT_STAT_CONN_CACHE_EVICTION_SERVER_SLEPT 1046
/*! cache: eviction server unable to reach eviction goal */
-#define WT_STAT_CONN_CACHE_EVICTION_SLOW 1046
+#define WT_STAT_CONN_CACHE_EVICTION_SLOW 1047
/*! cache: eviction worker thread evicting pages */
-#define WT_STAT_CONN_CACHE_EVICTION_WORKER_EVICTING 1047
+#define WT_STAT_CONN_CACHE_EVICTION_WORKER_EVICTING 1048
/*! cache: failed eviction of pages that exceeded the in-memory maximum */
-#define WT_STAT_CONN_CACHE_EVICTION_FORCE_FAIL 1048
+#define WT_STAT_CONN_CACHE_EVICTION_FORCE_FAIL 1049
/*! cache: files with active eviction walks */
-#define WT_STAT_CONN_CACHE_EVICTION_WALKS_ACTIVE 1049
+#define WT_STAT_CONN_CACHE_EVICTION_WALKS_ACTIVE 1050
/*! cache: files with new eviction walks started */
-#define WT_STAT_CONN_CACHE_EVICTION_WALKS_STARTED 1050
+#define WT_STAT_CONN_CACHE_EVICTION_WALKS_STARTED 1051
/*! cache: hazard pointer blocked page eviction */
-#define WT_STAT_CONN_CACHE_EVICTION_HAZARD 1051
+#define WT_STAT_CONN_CACHE_EVICTION_HAZARD 1052
/*! cache: hazard pointer check calls */
-#define WT_STAT_CONN_CACHE_HAZARD_CHECKS 1052
+#define WT_STAT_CONN_CACHE_HAZARD_CHECKS 1053
/*! cache: hazard pointer check entries walked */
-#define WT_STAT_CONN_CACHE_HAZARD_WALKS 1053
+#define WT_STAT_CONN_CACHE_HAZARD_WALKS 1054
/*! cache: hazard pointer maximum array length */
-#define WT_STAT_CONN_CACHE_HAZARD_MAX 1054
+#define WT_STAT_CONN_CACHE_HAZARD_MAX 1055
/*! cache: in-memory page passed criteria to be split */
-#define WT_STAT_CONN_CACHE_INMEM_SPLITTABLE 1055
+#define WT_STAT_CONN_CACHE_INMEM_SPLITTABLE 1056
/*! cache: in-memory page splits */
-#define WT_STAT_CONN_CACHE_INMEM_SPLIT 1056
+#define WT_STAT_CONN_CACHE_INMEM_SPLIT 1057
/*! cache: internal pages evicted */
-#define WT_STAT_CONN_CACHE_EVICTION_INTERNAL 1057
+#define WT_STAT_CONN_CACHE_EVICTION_INTERNAL 1058
/*! cache: internal pages split during eviction */
-#define WT_STAT_CONN_CACHE_EVICTION_SPLIT_INTERNAL 1058
+#define WT_STAT_CONN_CACHE_EVICTION_SPLIT_INTERNAL 1059
/*! cache: leaf pages split during eviction */
-#define WT_STAT_CONN_CACHE_EVICTION_SPLIT_LEAF 1059
+#define WT_STAT_CONN_CACHE_EVICTION_SPLIT_LEAF 1060
/*! cache: lookaside table insert calls */
-#define WT_STAT_CONN_CACHE_LOOKASIDE_INSERT 1060
+#define WT_STAT_CONN_CACHE_LOOKASIDE_INSERT 1061
/*! cache: lookaside table remove calls */
-#define WT_STAT_CONN_CACHE_LOOKASIDE_REMOVE 1061
+#define WT_STAT_CONN_CACHE_LOOKASIDE_REMOVE 1062
/*! cache: maximum bytes configured */
-#define WT_STAT_CONN_CACHE_BYTES_MAX 1062
+#define WT_STAT_CONN_CACHE_BYTES_MAX 1063
/*! cache: maximum page size at eviction */
-#define WT_STAT_CONN_CACHE_EVICTION_MAXIMUM_PAGE_SIZE 1063
+#define WT_STAT_CONN_CACHE_EVICTION_MAXIMUM_PAGE_SIZE 1064
/*! cache: modified pages evicted */
-#define WT_STAT_CONN_CACHE_EVICTION_DIRTY 1064
+#define WT_STAT_CONN_CACHE_EVICTION_DIRTY 1065
/*! cache: modified pages evicted by application threads */
-#define WT_STAT_CONN_CACHE_EVICTION_APP_DIRTY 1065
+#define WT_STAT_CONN_CACHE_EVICTION_APP_DIRTY 1066
/*! cache: page split during eviction deepened the tree */
-#define WT_STAT_CONN_CACHE_EVICTION_DEEPEN 1066
+#define WT_STAT_CONN_CACHE_EVICTION_DEEPEN 1067
/*! cache: page written requiring lookaside records */
-#define WT_STAT_CONN_CACHE_WRITE_LOOKASIDE 1067
+#define WT_STAT_CONN_CACHE_WRITE_LOOKASIDE 1068
/*! cache: pages currently held in the cache */
-#define WT_STAT_CONN_CACHE_PAGES_INUSE 1068
+#define WT_STAT_CONN_CACHE_PAGES_INUSE 1069
/*! cache: pages evicted because they exceeded the in-memory maximum */
-#define WT_STAT_CONN_CACHE_EVICTION_FORCE 1069
+#define WT_STAT_CONN_CACHE_EVICTION_FORCE 1070
/*! cache: pages evicted because they had chains of deleted items */
-#define WT_STAT_CONN_CACHE_EVICTION_FORCE_DELETE 1070
+#define WT_STAT_CONN_CACHE_EVICTION_FORCE_DELETE 1071
/*! cache: pages evicted by application threads */
-#define WT_STAT_CONN_CACHE_EVICTION_APP 1071
+#define WT_STAT_CONN_CACHE_EVICTION_APP 1072
/*! cache: pages queued for eviction */
-#define WT_STAT_CONN_CACHE_EVICTION_PAGES_QUEUED 1072
+#define WT_STAT_CONN_CACHE_EVICTION_PAGES_QUEUED 1073
/*! cache: pages queued for urgent eviction */
-#define WT_STAT_CONN_CACHE_EVICTION_PAGES_QUEUED_OLDEST 1073
+#define WT_STAT_CONN_CACHE_EVICTION_PAGES_QUEUED_OLDEST 1074
/*! cache: pages read into cache */
-#define WT_STAT_CONN_CACHE_READ 1074
+#define WT_STAT_CONN_CACHE_READ 1075
/*! cache: pages read into cache requiring lookaside entries */
-#define WT_STAT_CONN_CACHE_READ_LOOKASIDE 1075
+#define WT_STAT_CONN_CACHE_READ_LOOKASIDE 1076
/*! cache: pages requested from the cache */
-#define WT_STAT_CONN_CACHE_PAGES_REQUESTED 1076
+#define WT_STAT_CONN_CACHE_PAGES_REQUESTED 1077
/*! cache: pages seen by eviction walk */
-#define WT_STAT_CONN_CACHE_EVICTION_PAGES_SEEN 1077
+#define WT_STAT_CONN_CACHE_EVICTION_PAGES_SEEN 1078
/*! cache: pages selected for eviction unable to be evicted */
-#define WT_STAT_CONN_CACHE_EVICTION_FAIL 1078
+#define WT_STAT_CONN_CACHE_EVICTION_FAIL 1079
/*! cache: pages walked for eviction */
-#define WT_STAT_CONN_CACHE_EVICTION_WALK 1079
+#define WT_STAT_CONN_CACHE_EVICTION_WALK 1080
/*! cache: pages written from cache */
-#define WT_STAT_CONN_CACHE_WRITE 1080
+#define WT_STAT_CONN_CACHE_WRITE 1081
/*! cache: pages written requiring in-memory restoration */
-#define WT_STAT_CONN_CACHE_WRITE_RESTORE 1081
+#define WT_STAT_CONN_CACHE_WRITE_RESTORE 1082
/*! cache: percentage overhead */
-#define WT_STAT_CONN_CACHE_OVERHEAD 1082
+#define WT_STAT_CONN_CACHE_OVERHEAD 1083
/*! cache: tracked bytes belonging to internal pages in the cache */
-#define WT_STAT_CONN_CACHE_BYTES_INTERNAL 1083
+#define WT_STAT_CONN_CACHE_BYTES_INTERNAL 1084
/*! cache: tracked bytes belonging to leaf pages in the cache */
-#define WT_STAT_CONN_CACHE_BYTES_LEAF 1084
+#define WT_STAT_CONN_CACHE_BYTES_LEAF 1085
/*! cache: tracked bytes belonging to overflow pages in the cache */
-#define WT_STAT_CONN_CACHE_BYTES_OVERFLOW 1085
+#define WT_STAT_CONN_CACHE_BYTES_OVERFLOW 1086
/*! cache: tracked dirty bytes in the cache */
-#define WT_STAT_CONN_CACHE_BYTES_DIRTY 1086
+#define WT_STAT_CONN_CACHE_BYTES_DIRTY 1087
/*! cache: tracked dirty pages in the cache */
-#define WT_STAT_CONN_CACHE_PAGES_DIRTY 1087
+#define WT_STAT_CONN_CACHE_PAGES_DIRTY 1088
/*! cache: unmodified pages evicted */
-#define WT_STAT_CONN_CACHE_EVICTION_CLEAN 1088
+#define WT_STAT_CONN_CACHE_EVICTION_CLEAN 1089
/*! connection: auto adjusting condition resets */
-#define WT_STAT_CONN_COND_AUTO_WAIT_RESET 1089
+#define WT_STAT_CONN_COND_AUTO_WAIT_RESET 1090
/*! connection: auto adjusting condition wait calls */
-#define WT_STAT_CONN_COND_AUTO_WAIT 1090
+#define WT_STAT_CONN_COND_AUTO_WAIT 1091
/*! connection: files currently open */
-#define WT_STAT_CONN_FILE_OPEN 1091
+#define WT_STAT_CONN_FILE_OPEN 1092
/*! connection: memory allocations */
-#define WT_STAT_CONN_MEMORY_ALLOCATION 1092
+#define WT_STAT_CONN_MEMORY_ALLOCATION 1093
/*! connection: memory frees */
-#define WT_STAT_CONN_MEMORY_FREE 1093
+#define WT_STAT_CONN_MEMORY_FREE 1094
/*! connection: memory re-allocations */
-#define WT_STAT_CONN_MEMORY_GROW 1094
+#define WT_STAT_CONN_MEMORY_GROW 1095
/*! connection: pthread mutex condition wait calls */
-#define WT_STAT_CONN_COND_WAIT 1095
+#define WT_STAT_CONN_COND_WAIT 1096
/*! connection: pthread mutex shared lock read-lock calls */
-#define WT_STAT_CONN_RWLOCK_READ 1096
+#define WT_STAT_CONN_RWLOCK_READ 1097
/*! connection: pthread mutex shared lock write-lock calls */
-#define WT_STAT_CONN_RWLOCK_WRITE 1097
+#define WT_STAT_CONN_RWLOCK_WRITE 1098
/*! connection: total fsync I/Os */
-#define WT_STAT_CONN_FSYNC_IO 1098
+#define WT_STAT_CONN_FSYNC_IO 1099
/*! connection: total read I/Os */
-#define WT_STAT_CONN_READ_IO 1099
+#define WT_STAT_CONN_READ_IO 1100
/*! connection: total write I/Os */
-#define WT_STAT_CONN_WRITE_IO 1100
+#define WT_STAT_CONN_WRITE_IO 1101
/*! cursor: cursor create calls */
-#define WT_STAT_CONN_CURSOR_CREATE 1101
+#define WT_STAT_CONN_CURSOR_CREATE 1102
/*! cursor: cursor insert calls */
-#define WT_STAT_CONN_CURSOR_INSERT 1102
+#define WT_STAT_CONN_CURSOR_INSERT 1103
/*! cursor: cursor next calls */
-#define WT_STAT_CONN_CURSOR_NEXT 1103
+#define WT_STAT_CONN_CURSOR_NEXT 1104
/*! cursor: cursor prev calls */
-#define WT_STAT_CONN_CURSOR_PREV 1104
+#define WT_STAT_CONN_CURSOR_PREV 1105
/*! cursor: cursor remove calls */
-#define WT_STAT_CONN_CURSOR_REMOVE 1105
+#define WT_STAT_CONN_CURSOR_REMOVE 1106
/*! cursor: cursor reset calls */
-#define WT_STAT_CONN_CURSOR_RESET 1106
+#define WT_STAT_CONN_CURSOR_RESET 1107
/*! cursor: cursor restarted searches */
-#define WT_STAT_CONN_CURSOR_RESTART 1107
+#define WT_STAT_CONN_CURSOR_RESTART 1108
/*! cursor: cursor search calls */
-#define WT_STAT_CONN_CURSOR_SEARCH 1108
+#define WT_STAT_CONN_CURSOR_SEARCH 1109
/*! cursor: cursor search near calls */
-#define WT_STAT_CONN_CURSOR_SEARCH_NEAR 1109
+#define WT_STAT_CONN_CURSOR_SEARCH_NEAR 1110
/*! cursor: cursor update calls */
-#define WT_STAT_CONN_CURSOR_UPDATE 1110
+#define WT_STAT_CONN_CURSOR_UPDATE 1111
/*! cursor: truncate calls */
-#define WT_STAT_CONN_CURSOR_TRUNCATE 1111
+#define WT_STAT_CONN_CURSOR_TRUNCATE 1112
/*! data-handle: connection data handles currently active */
-#define WT_STAT_CONN_DH_CONN_HANDLE_COUNT 1112
+#define WT_STAT_CONN_DH_CONN_HANDLE_COUNT 1113
/*! data-handle: connection sweep candidate became referenced */
-#define WT_STAT_CONN_DH_SWEEP_REF 1113
+#define WT_STAT_CONN_DH_SWEEP_REF 1114
/*! data-handle: connection sweep dhandles closed */
-#define WT_STAT_CONN_DH_SWEEP_CLOSE 1114
+#define WT_STAT_CONN_DH_SWEEP_CLOSE 1115
/*! data-handle: connection sweep dhandles removed from hash list */
-#define WT_STAT_CONN_DH_SWEEP_REMOVE 1115
+#define WT_STAT_CONN_DH_SWEEP_REMOVE 1116
/*! data-handle: connection sweep time-of-death sets */
-#define WT_STAT_CONN_DH_SWEEP_TOD 1116
+#define WT_STAT_CONN_DH_SWEEP_TOD 1117
/*! data-handle: connection sweeps */
-#define WT_STAT_CONN_DH_SWEEPS 1117
+#define WT_STAT_CONN_DH_SWEEPS 1118
/*! data-handle: session dhandles swept */
-#define WT_STAT_CONN_DH_SESSION_HANDLES 1118
+#define WT_STAT_CONN_DH_SESSION_HANDLES 1119
/*! data-handle: session sweep attempts */
-#define WT_STAT_CONN_DH_SESSION_SWEEPS 1119
+#define WT_STAT_CONN_DH_SESSION_SWEEPS 1120
/*! log: busy returns attempting to switch slots */
-#define WT_STAT_CONN_LOG_SLOT_SWITCH_BUSY 1120
+#define WT_STAT_CONN_LOG_SLOT_SWITCH_BUSY 1121
/*! log: consolidated slot closures */
-#define WT_STAT_CONN_LOG_SLOT_CLOSES 1121
+#define WT_STAT_CONN_LOG_SLOT_CLOSES 1122
/*! log: consolidated slot join races */
-#define WT_STAT_CONN_LOG_SLOT_RACES 1122
+#define WT_STAT_CONN_LOG_SLOT_RACES 1123
/*! log: consolidated slot join transitions */
-#define WT_STAT_CONN_LOG_SLOT_TRANSITIONS 1123
+#define WT_STAT_CONN_LOG_SLOT_TRANSITIONS 1124
/*! log: consolidated slot joins */
-#define WT_STAT_CONN_LOG_SLOT_JOINS 1124
+#define WT_STAT_CONN_LOG_SLOT_JOINS 1125
/*! log: consolidated slot unbuffered writes */
-#define WT_STAT_CONN_LOG_SLOT_UNBUFFERED 1125
+#define WT_STAT_CONN_LOG_SLOT_UNBUFFERED 1126
/*! log: log bytes of payload data */
-#define WT_STAT_CONN_LOG_BYTES_PAYLOAD 1126
+#define WT_STAT_CONN_LOG_BYTES_PAYLOAD 1127
/*! log: log bytes written */
-#define WT_STAT_CONN_LOG_BYTES_WRITTEN 1127
+#define WT_STAT_CONN_LOG_BYTES_WRITTEN 1128
/*! log: log files manually zero-filled */
-#define WT_STAT_CONN_LOG_ZERO_FILLS 1128
+#define WT_STAT_CONN_LOG_ZERO_FILLS 1129
/*! log: log flush operations */
-#define WT_STAT_CONN_LOG_FLUSH 1129
+#define WT_STAT_CONN_LOG_FLUSH 1130
/*! log: log force write operations */
-#define WT_STAT_CONN_LOG_FORCE_WRITE 1130
+#define WT_STAT_CONN_LOG_FORCE_WRITE 1131
/*! log: log force write operations skipped */
-#define WT_STAT_CONN_LOG_FORCE_WRITE_SKIP 1131
+#define WT_STAT_CONN_LOG_FORCE_WRITE_SKIP 1132
/*! log: log records compressed */
-#define WT_STAT_CONN_LOG_COMPRESS_WRITES 1132
+#define WT_STAT_CONN_LOG_COMPRESS_WRITES 1133
/*! log: log records not compressed */
-#define WT_STAT_CONN_LOG_COMPRESS_WRITE_FAILS 1133
+#define WT_STAT_CONN_LOG_COMPRESS_WRITE_FAILS 1134
/*! log: log records too small to compress */
-#define WT_STAT_CONN_LOG_COMPRESS_SMALL 1134
+#define WT_STAT_CONN_LOG_COMPRESS_SMALL 1135
/*! log: log release advances write LSN */
-#define WT_STAT_CONN_LOG_RELEASE_WRITE_LSN 1135
+#define WT_STAT_CONN_LOG_RELEASE_WRITE_LSN 1136
/*! log: log scan operations */
-#define WT_STAT_CONN_LOG_SCANS 1136
+#define WT_STAT_CONN_LOG_SCANS 1137
/*! log: log scan records requiring two reads */
-#define WT_STAT_CONN_LOG_SCAN_REREADS 1137
+#define WT_STAT_CONN_LOG_SCAN_REREADS 1138
/*! log: log server thread advances write LSN */
-#define WT_STAT_CONN_LOG_WRITE_LSN 1138
+#define WT_STAT_CONN_LOG_WRITE_LSN 1139
/*! log: log server thread write LSN walk skipped */
-#define WT_STAT_CONN_LOG_WRITE_LSN_SKIP 1139
+#define WT_STAT_CONN_LOG_WRITE_LSN_SKIP 1140
/*! log: log sync operations */
-#define WT_STAT_CONN_LOG_SYNC 1140
+#define WT_STAT_CONN_LOG_SYNC 1141
/*! log: log sync time duration (usecs) */
-#define WT_STAT_CONN_LOG_SYNC_DURATION 1141
+#define WT_STAT_CONN_LOG_SYNC_DURATION 1142
/*! log: log sync_dir operations */
-#define WT_STAT_CONN_LOG_SYNC_DIR 1142
+#define WT_STAT_CONN_LOG_SYNC_DIR 1143
/*! log: log sync_dir time duration (usecs) */
-#define WT_STAT_CONN_LOG_SYNC_DIR_DURATION 1143
+#define WT_STAT_CONN_LOG_SYNC_DIR_DURATION 1144
/*! log: log write operations */
-#define WT_STAT_CONN_LOG_WRITES 1144
+#define WT_STAT_CONN_LOG_WRITES 1145
/*! log: logging bytes consolidated */
-#define WT_STAT_CONN_LOG_SLOT_CONSOLIDATED 1145
+#define WT_STAT_CONN_LOG_SLOT_CONSOLIDATED 1146
/*! log: maximum log file size */
-#define WT_STAT_CONN_LOG_MAX_FILESIZE 1146
+#define WT_STAT_CONN_LOG_MAX_FILESIZE 1147
/*! log: number of pre-allocated log files to create */
-#define WT_STAT_CONN_LOG_PREALLOC_MAX 1147
+#define WT_STAT_CONN_LOG_PREALLOC_MAX 1148
/*! log: pre-allocated log files not ready and missed */
-#define WT_STAT_CONN_LOG_PREALLOC_MISSED 1148
+#define WT_STAT_CONN_LOG_PREALLOC_MISSED 1149
/*! log: pre-allocated log files prepared */
-#define WT_STAT_CONN_LOG_PREALLOC_FILES 1149
+#define WT_STAT_CONN_LOG_PREALLOC_FILES 1150
/*! log: pre-allocated log files used */
-#define WT_STAT_CONN_LOG_PREALLOC_USED 1150
+#define WT_STAT_CONN_LOG_PREALLOC_USED 1151
/*! log: records processed by log scan */
-#define WT_STAT_CONN_LOG_SCAN_RECORDS 1151
+#define WT_STAT_CONN_LOG_SCAN_RECORDS 1152
/*! log: total in-memory size of compressed records */
-#define WT_STAT_CONN_LOG_COMPRESS_MEM 1152
+#define WT_STAT_CONN_LOG_COMPRESS_MEM 1153
/*! log: total log buffer size */
-#define WT_STAT_CONN_LOG_BUFFER_SIZE 1153
+#define WT_STAT_CONN_LOG_BUFFER_SIZE 1154
/*! log: total size of compressed records */
-#define WT_STAT_CONN_LOG_COMPRESS_LEN 1154
+#define WT_STAT_CONN_LOG_COMPRESS_LEN 1155
/*! log: written slots coalesced */
-#define WT_STAT_CONN_LOG_SLOT_COALESCED 1155
+#define WT_STAT_CONN_LOG_SLOT_COALESCED 1156
/*! log: yields waiting for previous log file close */
-#define WT_STAT_CONN_LOG_CLOSE_YIELDS 1156
+#define WT_STAT_CONN_LOG_CLOSE_YIELDS 1157
/*! reconciliation: fast-path pages deleted */
-#define WT_STAT_CONN_REC_PAGE_DELETE_FAST 1157
+#define WT_STAT_CONN_REC_PAGE_DELETE_FAST 1158
/*! reconciliation: page reconciliation calls */
-#define WT_STAT_CONN_REC_PAGES 1158
+#define WT_STAT_CONN_REC_PAGES 1159
/*! reconciliation: page reconciliation calls for eviction */
-#define WT_STAT_CONN_REC_PAGES_EVICTION 1159
+#define WT_STAT_CONN_REC_PAGES_EVICTION 1160
/*! reconciliation: pages deleted */
-#define WT_STAT_CONN_REC_PAGE_DELETE 1160
+#define WT_STAT_CONN_REC_PAGE_DELETE 1161
/*! reconciliation: split bytes currently awaiting free */
-#define WT_STAT_CONN_REC_SPLIT_STASHED_BYTES 1161
+#define WT_STAT_CONN_REC_SPLIT_STASHED_BYTES 1162
/*! reconciliation: split objects currently awaiting free */
-#define WT_STAT_CONN_REC_SPLIT_STASHED_OBJECTS 1162
+#define WT_STAT_CONN_REC_SPLIT_STASHED_OBJECTS 1163
/*! session: open cursor count */
-#define WT_STAT_CONN_SESSION_CURSOR_OPEN 1163
+#define WT_STAT_CONN_SESSION_CURSOR_OPEN 1164
/*! session: open session count */
-#define WT_STAT_CONN_SESSION_OPEN 1164
+#define WT_STAT_CONN_SESSION_OPEN 1165
/*! thread-state: active filesystem fsync calls */
-#define WT_STAT_CONN_THREAD_FSYNC_ACTIVE 1165
+#define WT_STAT_CONN_THREAD_FSYNC_ACTIVE 1166
/*! thread-state: active filesystem read calls */
-#define WT_STAT_CONN_THREAD_READ_ACTIVE 1166
+#define WT_STAT_CONN_THREAD_READ_ACTIVE 1167
/*! thread-state: active filesystem write calls */
-#define WT_STAT_CONN_THREAD_WRITE_ACTIVE 1167
+#define WT_STAT_CONN_THREAD_WRITE_ACTIVE 1168
/*! thread-yield: page acquire busy blocked */
-#define WT_STAT_CONN_PAGE_BUSY_BLOCKED 1168
+#define WT_STAT_CONN_PAGE_BUSY_BLOCKED 1169
/*! thread-yield: page acquire eviction blocked */
-#define WT_STAT_CONN_PAGE_FORCIBLE_EVICT_BLOCKED 1169
+#define WT_STAT_CONN_PAGE_FORCIBLE_EVICT_BLOCKED 1170
/*! thread-yield: page acquire locked blocked */
-#define WT_STAT_CONN_PAGE_LOCKED_BLOCKED 1170
+#define WT_STAT_CONN_PAGE_LOCKED_BLOCKED 1171
/*! thread-yield: page acquire read blocked */
-#define WT_STAT_CONN_PAGE_READ_BLOCKED 1171
+#define WT_STAT_CONN_PAGE_READ_BLOCKED 1172
/*! thread-yield: page acquire time sleeping (usecs) */
-#define WT_STAT_CONN_PAGE_SLEEP 1172
+#define WT_STAT_CONN_PAGE_SLEEP 1173
/*! transaction: number of named snapshots created */
-#define WT_STAT_CONN_TXN_SNAPSHOTS_CREATED 1173
+#define WT_STAT_CONN_TXN_SNAPSHOTS_CREATED 1174
/*! transaction: number of named snapshots dropped */
-#define WT_STAT_CONN_TXN_SNAPSHOTS_DROPPED 1174
+#define WT_STAT_CONN_TXN_SNAPSHOTS_DROPPED 1175
/*! transaction: transaction begins */
-#define WT_STAT_CONN_TXN_BEGIN 1175
+#define WT_STAT_CONN_TXN_BEGIN 1176
/*! transaction: transaction checkpoint currently running */
-#define WT_STAT_CONN_TXN_CHECKPOINT_RUNNING 1176
+#define WT_STAT_CONN_TXN_CHECKPOINT_RUNNING 1177
/*! transaction: transaction checkpoint generation */
-#define WT_STAT_CONN_TXN_CHECKPOINT_GENERATION 1177
+#define WT_STAT_CONN_TXN_CHECKPOINT_GENERATION 1178
/*! transaction: transaction checkpoint max time (msecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_MAX 1178
+#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_MAX 1179
/*! transaction: transaction checkpoint min time (msecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_MIN 1179
+#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_MIN 1180
/*! transaction: transaction checkpoint most recent time (msecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_RECENT 1180
+#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_RECENT 1181
/*! transaction: transaction checkpoint total time (msecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_TOTAL 1181
+#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_TOTAL 1182
/*! transaction: transaction checkpoints */
-#define WT_STAT_CONN_TXN_CHECKPOINT 1182
+#define WT_STAT_CONN_TXN_CHECKPOINT 1183
/*! transaction: transaction failures due to cache overflow */
-#define WT_STAT_CONN_TXN_FAIL_CACHE 1183
+#define WT_STAT_CONN_TXN_FAIL_CACHE 1184
/*! transaction: transaction fsync calls for checkpoint after allocating
* the transaction ID */
-#define WT_STAT_CONN_TXN_CHECKPOINT_FSYNC_POST 1184
+#define WT_STAT_CONN_TXN_CHECKPOINT_FSYNC_POST 1185
/*! transaction: transaction fsync calls for checkpoint before allocating
* the transaction ID */
-#define WT_STAT_CONN_TXN_CHECKPOINT_FSYNC_PRE 1185
+#define WT_STAT_CONN_TXN_CHECKPOINT_FSYNC_PRE 1186
/*! transaction: transaction fsync duration for checkpoint after
* allocating the transaction ID (usecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_FSYNC_POST_DURATION 1186
+#define WT_STAT_CONN_TXN_CHECKPOINT_FSYNC_POST_DURATION 1187
/*! transaction: transaction fsync duration for checkpoint before
* allocating the transaction ID (usecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_FSYNC_PRE_DURATION 1187
+#define WT_STAT_CONN_TXN_CHECKPOINT_FSYNC_PRE_DURATION 1188
/*! transaction: transaction range of IDs currently pinned */
-#define WT_STAT_CONN_TXN_PINNED_RANGE 1188
+#define WT_STAT_CONN_TXN_PINNED_RANGE 1189
/*! transaction: transaction range of IDs currently pinned by a checkpoint */
-#define WT_STAT_CONN_TXN_PINNED_CHECKPOINT_RANGE 1189
+#define WT_STAT_CONN_TXN_PINNED_CHECKPOINT_RANGE 1190
/*! transaction: transaction range of IDs currently pinned by named
* snapshots */
-#define WT_STAT_CONN_TXN_PINNED_SNAPSHOT_RANGE 1190
+#define WT_STAT_CONN_TXN_PINNED_SNAPSHOT_RANGE 1191
/*! transaction: transaction sync calls */
-#define WT_STAT_CONN_TXN_SYNC 1191
+#define WT_STAT_CONN_TXN_SYNC 1192
/*! transaction: transactions committed */
-#define WT_STAT_CONN_TXN_COMMIT 1192
+#define WT_STAT_CONN_TXN_COMMIT 1193
/*! transaction: transactions rolled back */
-#define WT_STAT_CONN_TXN_ROLLBACK 1193
+#define WT_STAT_CONN_TXN_ROLLBACK 1194
/*!
* @}
diff --git a/src/reconcile/rec_write.c b/src/reconcile/rec_write.c
index b49946bb10e..da35747f97b 100644
--- a/src/reconcile/rec_write.c
+++ b/src/reconcile/rec_write.c
@@ -3343,8 +3343,8 @@ supd_check_complete:
r->bnd_state));
#endif
- WT_ERR(__wt_bt_write(session,
- buf, addr, &addr_size, false, bnd->already_compressed));
+ WT_ERR(__wt_bt_write(session, buf, addr, &addr_size,
+ false, F_ISSET(r, WT_CHECKPOINTING), bnd->already_compressed));
WT_ERR(__wt_strndup(session, addr, addr_size, &bnd->addr.addr));
bnd->addr.size = (uint8_t)addr_size;
@@ -5667,7 +5667,8 @@ __rec_write_wrapup(WT_SESSION_IMPL *session, WT_RECONCILE *r, WT_PAGE *page)
*/
if (bnd->addr.addr == NULL)
WT_RET(__wt_bt_write(session, &r->disk_image,
- NULL, NULL, true, bnd->already_compressed));
+ NULL, NULL, true, F_ISSET(r, WT_CHECKPOINTING),
+ bnd->already_compressed));
else {
mod->mod_replace = bnd->addr;
bnd->addr.addr = NULL;
@@ -6133,7 +6134,8 @@ __rec_cell_build_ovfl(WT_SESSION_IMPL *session,
/* Write the buffer. */
addr = buf;
- WT_ERR(__wt_bt_write(session, tmp, addr, &size, false, false));
+ WT_ERR(__wt_bt_write(session, tmp,
+ addr, &size, false, F_ISSET(r, WT_CHECKPOINTING), false));
/*
* Track the overflow record (unless it's a bulk load, which
diff --git a/src/support/stat.c b/src/support/stat.c
index ed451d39980..483d6715a7e 100644
--- a/src/support/stat.c
+++ b/src/support/stat.c
@@ -546,6 +546,7 @@ static const char * const __stats_connection_desc[] = {
"block-manager: blocks written",
"block-manager: bytes read",
"block-manager: bytes written",
+ "block-manager: bytes written for checkpoint",
"block-manager: mapped blocks read",
"block-manager: mapped bytes read",
"cache: bytes belonging to page images in the cache",
@@ -770,6 +771,7 @@ __wt_stat_connection_clear_single(WT_CONNECTION_STATS *stats)
stats->block_write = 0;
stats->block_byte_read = 0;
stats->block_byte_write = 0;
+ stats->block_byte_write_checkpoint = 0;
stats->block_map_read = 0;
stats->block_byte_map_read = 0;
/* not clearing cache_bytes_image */
@@ -986,6 +988,8 @@ __wt_stat_connection_aggregate(
to->block_write += WT_STAT_READ(from, block_write);
to->block_byte_read += WT_STAT_READ(from, block_byte_read);
to->block_byte_write += WT_STAT_READ(from, block_byte_write);
+ to->block_byte_write_checkpoint +=
+ WT_STAT_READ(from, block_byte_write_checkpoint);
to->block_map_read += WT_STAT_READ(from, block_map_read);
to->block_byte_map_read += WT_STAT_READ(from, block_byte_map_read);
to->cache_bytes_image += WT_STAT_READ(from, cache_bytes_image);