diff options
-rw-r--r-- | bench/wtperf/wtperf.h | 1 | ||||
-rw-r--r-- | dist/flags.py | 3 | ||||
-rw-r--r-- | dist/stat_data.py | 1 | ||||
-rw-r--r-- | src/block/block_ckpt.c | 2 | ||||
-rw-r--r-- | src/block/block_ext.c | 2 | ||||
-rw-r--r-- | src/block/block_mgr.c | 13 | ||||
-rw-r--r-- | src/block/block_write.c | 13 | ||||
-rw-r--r-- | src/btree/bt_io.c | 6 | ||||
-rw-r--r-- | src/btree/bt_sync.c | 6 | ||||
-rw-r--r-- | src/include/block.h | 2 | ||||
-rw-r--r-- | src/include/extern.h | 6 | ||||
-rw-r--r-- | src/include/flags.h | 15 | ||||
-rw-r--r-- | src/include/stat.h | 1 | ||||
-rw-r--r-- | src/include/wiredtiger.in | 334 | ||||
-rw-r--r-- | src/reconcile/rec_write.c | 10 | ||||
-rw-r--r-- | src/support/stat.c | 4 |
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); |