summaryrefslogtreecommitdiff
path: root/src/support/stat.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/support/stat.c')
-rw-r--r--src/support/stat.c77
1 files changed, 71 insertions, 6 deletions
diff --git a/src/support/stat.c b/src/support/stat.c
index 7514aac56c4..d972f0c140f 100644
--- a/src/support/stat.c
+++ b/src/support/stat.c
@@ -561,6 +561,8 @@ static const char * const __stats_connection_desc[] = {
"cache: eviction server unable to reach eviction goal",
"cache: eviction worker thread evicting pages",
"cache: failed eviction of pages that exceeded the in-memory maximum",
+ "cache: files with active eviction walks",
+ "cache: files with new eviction walks started",
"cache: hazard pointer blocked page eviction",
"cache: hazard pointer check calls",
"cache: hazard pointer check entries walked",
@@ -575,15 +577,19 @@ static const char * const __stats_connection_desc[] = {
"cache: maximum bytes configured",
"cache: maximum page size at eviction",
"cache: modified pages evicted",
+ "cache: modified pages evicted by application threads",
"cache: page split during eviction deepened the tree",
"cache: page written requiring lookaside records",
"cache: pages currently held in the cache",
"cache: pages evicted because they exceeded the in-memory maximum",
"cache: pages evicted because they had chains of deleted items",
"cache: pages evicted by application threads",
+ "cache: pages queued for eviction",
+ "cache: pages queued for urgent eviction",
"cache: pages read into cache",
"cache: pages read into cache requiring lookaside entries",
"cache: pages requested from the cache",
+ "cache: pages seen by eviction walk",
"cache: pages selected for eviction unable to be evicted",
"cache: pages walked for eviction",
"cache: pages written from cache",
@@ -604,6 +610,7 @@ static const char * const __stats_connection_desc[] = {
"connection: pthread mutex condition wait calls",
"connection: pthread mutex shared lock read-lock calls",
"connection: pthread mutex shared lock write-lock calls",
+ "connection: total fsync I/Os",
"connection: total read I/Os",
"connection: total write I/Os",
"cursor: cursor create calls",
@@ -646,7 +653,9 @@ static const char * const __stats_connection_desc[] = {
"log: log server thread advances write LSN",
"log: log server thread write LSN walk skipped",
"log: log sync operations",
+ "log: log sync time duration (usecs)",
"log: log sync_dir operations",
+ "log: log sync_dir time duration (usecs)",
"log: log write operations",
"log: logging bytes consolidated",
"log: maximum log file size",
@@ -668,6 +677,9 @@ static const char * const __stats_connection_desc[] = {
"reconciliation: split objects currently awaiting free",
"session: open cursor count",
"session: open session count",
+ "thread-state: active filesystem fsync calls",
+ "thread-state: active filesystem read calls",
+ "thread-state: active filesystem write calls",
"thread-yield: page acquire busy blocked",
"thread-yield: page acquire eviction blocked",
"thread-yield: page acquire locked blocked",
@@ -684,6 +696,10 @@ static const char * const __stats_connection_desc[] = {
"transaction: transaction checkpoint total time (msecs)",
"transaction: transaction checkpoints",
"transaction: transaction failures due to cache overflow",
+ "transaction: transaction fsync calls for checkpoint after allocating the transaction ID",
+ "transaction: transaction fsync calls for checkpoint before allocating the transaction ID",
+ "transaction: transaction fsync duration for checkpoint after allocating the transaction ID (usecs)",
+ "transaction: transaction fsync duration for checkpoint before allocating the transaction ID (usecs)",
"transaction: transaction range of IDs currently pinned",
"transaction: transaction range of IDs currently pinned by a checkpoint",
"transaction: transaction range of IDs currently pinned by named snapshots",
@@ -767,6 +783,8 @@ __wt_stat_connection_clear_single(WT_CONNECTION_STATS *stats)
stats->cache_eviction_slow = 0;
stats->cache_eviction_worker_evicting = 0;
stats->cache_eviction_force_fail = 0;
+ /* not clearing cache_eviction_walks_active */
+ stats->cache_eviction_walks_started = 0;
stats->cache_eviction_hazard = 0;
stats->cache_hazard_checks = 0;
stats->cache_hazard_walks = 0;
@@ -781,15 +799,19 @@ __wt_stat_connection_clear_single(WT_CONNECTION_STATS *stats)
/* not clearing cache_bytes_max */
/* not clearing cache_eviction_maximum_page_size */
stats->cache_eviction_dirty = 0;
+ stats->cache_eviction_app_dirty = 0;
stats->cache_eviction_deepen = 0;
stats->cache_write_lookaside = 0;
/* not clearing cache_pages_inuse */
stats->cache_eviction_force = 0;
stats->cache_eviction_force_delete = 0;
stats->cache_eviction_app = 0;
+ stats->cache_eviction_pages_queued = 0;
+ stats->cache_eviction_pages_queued_oldest = 0;
stats->cache_read = 0;
stats->cache_read_lookaside = 0;
stats->cache_pages_requested = 0;
+ stats->cache_eviction_pages_seen = 0;
stats->cache_eviction_fail = 0;
stats->cache_eviction_walk = 0;
stats->cache_write = 0;
@@ -810,6 +832,7 @@ __wt_stat_connection_clear_single(WT_CONNECTION_STATS *stats)
stats->cond_wait = 0;
stats->rwlock_read = 0;
stats->rwlock_write = 0;
+ stats->fsync_io = 0;
stats->read_io = 0;
stats->write_io = 0;
stats->cursor_create = 0;
@@ -852,7 +875,9 @@ __wt_stat_connection_clear_single(WT_CONNECTION_STATS *stats)
stats->log_write_lsn = 0;
stats->log_write_lsn_skip = 0;
stats->log_sync = 0;
+ stats->log_sync_duration = 0;
stats->log_sync_dir = 0;
+ stats->log_sync_dir_duration = 0;
stats->log_writes = 0;
stats->log_slot_consolidated = 0;
/* not clearing log_max_filesize */
@@ -874,6 +899,9 @@ __wt_stat_connection_clear_single(WT_CONNECTION_STATS *stats)
/* not clearing rec_split_stashed_objects */
/* not clearing session_cursor_open */
/* not clearing session_open */
+ /* not clearing fsync_active */
+ /* not clearing read_active */
+ /* not clearing write_active */
stats->page_busy_blocked = 0;
stats->page_forcible_evict_blocked = 0;
stats->page_locked_blocked = 0;
@@ -890,6 +918,10 @@ __wt_stat_connection_clear_single(WT_CONNECTION_STATS *stats)
/* not clearing txn_checkpoint_time_total */
stats->txn_checkpoint = 0;
stats->txn_fail_cache = 0;
+ stats->txn_checkpoint_fsync_post = 0;
+ stats->txn_checkpoint_fsync_pre = 0;
+ stats->txn_checkpoint_fsync_post_duration = 0;
+ stats->txn_checkpoint_fsync_pre_duration = 0;
/* not clearing txn_pinned_range */
/* not clearing txn_pinned_checkpoint_range */
/* not clearing txn_pinned_snapshot_range */
@@ -978,6 +1010,10 @@ __wt_stat_connection_aggregate(
WT_STAT_READ(from, cache_eviction_worker_evicting);
to->cache_eviction_force_fail +=
WT_STAT_READ(from, cache_eviction_force_fail);
+ to->cache_eviction_walks_active +=
+ WT_STAT_READ(from, cache_eviction_walks_active);
+ to->cache_eviction_walks_started +=
+ WT_STAT_READ(from, cache_eviction_walks_started);
to->cache_eviction_hazard +=
WT_STAT_READ(from, cache_eviction_hazard);
to->cache_hazard_checks += WT_STAT_READ(from, cache_hazard_checks);
@@ -1001,6 +1037,8 @@ __wt_stat_connection_aggregate(
to->cache_eviction_maximum_page_size +=
WT_STAT_READ(from, cache_eviction_maximum_page_size);
to->cache_eviction_dirty += WT_STAT_READ(from, cache_eviction_dirty);
+ to->cache_eviction_app_dirty +=
+ WT_STAT_READ(from, cache_eviction_app_dirty);
to->cache_eviction_deepen +=
WT_STAT_READ(from, cache_eviction_deepen);
to->cache_write_lookaside +=
@@ -1010,10 +1048,16 @@ __wt_stat_connection_aggregate(
to->cache_eviction_force_delete +=
WT_STAT_READ(from, cache_eviction_force_delete);
to->cache_eviction_app += WT_STAT_READ(from, cache_eviction_app);
+ to->cache_eviction_pages_queued +=
+ WT_STAT_READ(from, cache_eviction_pages_queued);
+ to->cache_eviction_pages_queued_oldest +=
+ WT_STAT_READ(from, cache_eviction_pages_queued_oldest);
to->cache_read += WT_STAT_READ(from, cache_read);
to->cache_read_lookaside += WT_STAT_READ(from, cache_read_lookaside);
to->cache_pages_requested +=
WT_STAT_READ(from, cache_pages_requested);
+ to->cache_eviction_pages_seen +=
+ WT_STAT_READ(from, cache_eviction_pages_seen);
to->cache_eviction_fail += WT_STAT_READ(from, cache_eviction_fail);
to->cache_eviction_walk += WT_STAT_READ(from, cache_eviction_walk);
to->cache_write += WT_STAT_READ(from, cache_write);
@@ -1034,6 +1078,7 @@ __wt_stat_connection_aggregate(
to->cond_wait += WT_STAT_READ(from, cond_wait);
to->rwlock_read += WT_STAT_READ(from, rwlock_read);
to->rwlock_write += WT_STAT_READ(from, rwlock_write);
+ to->fsync_io += WT_STAT_READ(from, fsync_io);
to->read_io += WT_STAT_READ(from, read_io);
to->write_io += WT_STAT_READ(from, write_io);
to->cursor_create += WT_STAT_READ(from, cursor_create);
@@ -1078,7 +1123,10 @@ __wt_stat_connection_aggregate(
to->log_write_lsn += WT_STAT_READ(from, log_write_lsn);
to->log_write_lsn_skip += WT_STAT_READ(from, log_write_lsn_skip);
to->log_sync += WT_STAT_READ(from, log_sync);
+ to->log_sync_duration += WT_STAT_READ(from, log_sync_duration);
to->log_sync_dir += WT_STAT_READ(from, log_sync_dir);
+ to->log_sync_dir_duration +=
+ WT_STAT_READ(from, log_sync_dir_duration);
to->log_writes += WT_STAT_READ(from, log_writes);
to->log_slot_consolidated +=
WT_STAT_READ(from, log_slot_consolidated);
@@ -1103,6 +1151,9 @@ __wt_stat_connection_aggregate(
WT_STAT_READ(from, rec_split_stashed_objects);
to->session_cursor_open += WT_STAT_READ(from, session_cursor_open);
to->session_open += WT_STAT_READ(from, session_open);
+ to->fsync_active += WT_STAT_READ(from, fsync_active);
+ to->read_active += WT_STAT_READ(from, read_active);
+ to->write_active += WT_STAT_READ(from, write_active);
to->page_busy_blocked += WT_STAT_READ(from, page_busy_blocked);
to->page_forcible_evict_blocked +=
WT_STAT_READ(from, page_forcible_evict_blocked);
@@ -1128,6 +1179,14 @@ __wt_stat_connection_aggregate(
WT_STAT_READ(from, txn_checkpoint_time_total);
to->txn_checkpoint += WT_STAT_READ(from, txn_checkpoint);
to->txn_fail_cache += WT_STAT_READ(from, txn_fail_cache);
+ to->txn_checkpoint_fsync_post +=
+ WT_STAT_READ(from, txn_checkpoint_fsync_post);
+ to->txn_checkpoint_fsync_pre +=
+ WT_STAT_READ(from, txn_checkpoint_fsync_pre);
+ to->txn_checkpoint_fsync_post_duration +=
+ WT_STAT_READ(from, txn_checkpoint_fsync_post_duration);
+ to->txn_checkpoint_fsync_pre_duration +=
+ WT_STAT_READ(from, txn_checkpoint_fsync_pre_duration);
to->txn_pinned_range += WT_STAT_READ(from, txn_pinned_range);
to->txn_pinned_checkpoint_range +=
WT_STAT_READ(from, txn_pinned_checkpoint_range);
@@ -1139,9 +1198,11 @@ __wt_stat_connection_aggregate(
}
static const char * const __stats_join_desc[] = {
- ": accesses",
- ": actual count of items",
+ ": accesses to the main table",
": bloom filter false positives",
+ ": checks that conditions of membership are satisfied",
+ ": items inserted into a bloom filter",
+ ": items iterated",
};
int
@@ -1161,9 +1222,11 @@ __wt_stat_join_init_single(WT_JOIN_STATS *stats)
void
__wt_stat_join_clear_single(WT_JOIN_STATS *stats)
{
- stats->accesses = 0;
- stats->actual_count = 0;
+ stats->main_access = 0;
stats->bloom_false_positive = 0;
+ stats->membership_check = 0;
+ stats->bloom_insert = 0;
+ stats->iterated = 0;
}
void
@@ -1179,7 +1242,9 @@ void
__wt_stat_join_aggregate(
WT_JOIN_STATS **from, WT_JOIN_STATS *to)
{
- to->accesses += WT_STAT_READ(from, accesses);
- to->actual_count += WT_STAT_READ(from, actual_count);
+ to->main_access += WT_STAT_READ(from, main_access);
to->bloom_false_positive += WT_STAT_READ(from, bloom_false_positive);
+ to->membership_check += WT_STAT_READ(from, membership_check);
+ to->bloom_insert += WT_STAT_READ(from, bloom_insert);
+ to->iterated += WT_STAT_READ(from, iterated);
}