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.c134
1 files changed, 101 insertions, 33 deletions
diff --git a/src/support/stat.c b/src/support/stat.c
index 2c2217f8c20..2dc006da827 100644
--- a/src/support/stat.c
+++ b/src/support/stat.c
@@ -97,9 +97,11 @@ static const char * const __stats_dsrc_desc[] = {
"cursor: cursor-remove key bytes removed",
"cursor: cursor-update value bytes updated",
"cursor: insert calls",
+ "cursor: modify calls",
"cursor: next calls",
"cursor: prev calls",
"cursor: remove calls",
+ "cursor: reserve calls",
"cursor: reset calls",
"cursor: restarted searches",
"cursor: search calls",
@@ -259,9 +261,11 @@ __wt_stat_dsrc_clear_single(WT_DSRC_STATS *stats)
stats->cursor_remove_bytes = 0;
stats->cursor_update_bytes = 0;
stats->cursor_insert = 0;
+ stats->cursor_modify = 0;
stats->cursor_next = 0;
stats->cursor_prev = 0;
stats->cursor_remove = 0;
+ stats->cursor_reserve = 0;
stats->cursor_reset = 0;
stats->cursor_restart = 0;
stats->cursor_search = 0;
@@ -410,9 +414,11 @@ __wt_stat_dsrc_aggregate_single(
to->cursor_remove_bytes += from->cursor_remove_bytes;
to->cursor_update_bytes += from->cursor_update_bytes;
to->cursor_insert += from->cursor_insert;
+ to->cursor_modify += from->cursor_modify;
to->cursor_next += from->cursor_next;
to->cursor_prev += from->cursor_prev;
to->cursor_remove += from->cursor_remove;
+ to->cursor_reserve += from->cursor_reserve;
to->cursor_reset += from->cursor_reset;
to->cursor_restart += from->cursor_restart;
to->cursor_search += from->cursor_search;
@@ -588,9 +594,11 @@ __wt_stat_dsrc_aggregate(
to->cursor_remove_bytes += WT_STAT_READ(from, cursor_remove_bytes);
to->cursor_update_bytes += WT_STAT_READ(from, cursor_update_bytes);
to->cursor_insert += WT_STAT_READ(from, cursor_insert);
+ to->cursor_modify += WT_STAT_READ(from, cursor_modify);
to->cursor_next += WT_STAT_READ(from, cursor_next);
to->cursor_prev += WT_STAT_READ(from, cursor_prev);
to->cursor_remove += WT_STAT_READ(from, cursor_remove);
+ to->cursor_reserve += WT_STAT_READ(from, cursor_reserve);
to->cursor_reset += WT_STAT_READ(from, cursor_reset);
to->cursor_restart += WT_STAT_READ(from, cursor_restart);
to->cursor_search += WT_STAT_READ(from, cursor_search);
@@ -682,7 +690,8 @@ static const char * const __stats_connection_desc[] = {
"cache: eviction worker thread evicting pages",
"cache: eviction worker thread removed",
"cache: eviction worker thread stable number",
- "cache: failed eviction of pages that exceeded the in-memory maximum",
+ "cache: failed eviction of pages that exceeded the in-memory maximum count",
+ "cache: failed eviction of pages that exceeded the in-memory maximum time (usecs)",
"cache: files with active eviction walks",
"cache: files with new eviction walks started",
"cache: force re-tuning of eviction workers once in a while",
@@ -706,8 +715,10 @@ static const char * const __stats_connection_desc[] = {
"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 because they exceeded the in-memory maximum count",
+ "cache: pages evicted because they exceeded the in-memory maximum time (usecs)",
+ "cache: pages evicted because they had chains of deleted items count",
+ "cache: pages evicted because they had chains of deleted items time (usecs)",
"cache: pages evicted by application threads",
"cache: pages queued for eviction",
"cache: pages queued for urgent eviction",
@@ -728,6 +739,7 @@ static const char * const __stats_connection_desc[] = {
"cache: unmodified pages evicted",
"connection: auto adjusting condition resets",
"connection: auto adjusting condition wait calls",
+ "connection: detected system time went backwards",
"connection: files currently open",
"connection: memory allocations",
"connection: memory frees",
@@ -740,9 +752,11 @@ static const char * const __stats_connection_desc[] = {
"connection: total write I/Os",
"cursor: cursor create calls",
"cursor: cursor insert calls",
+ "cursor: cursor modify calls",
"cursor: cursor next calls",
"cursor: cursor prev calls",
"cursor: cursor remove calls",
+ "cursor: cursor reserve calls",
"cursor: cursor reset calls",
"cursor: cursor restarted searches",
"cursor: cursor search calls",
@@ -760,24 +774,21 @@ static const char * const __stats_connection_desc[] = {
"lock: checkpoint lock acquisitions",
"lock: checkpoint lock application thread wait time (usecs)",
"lock: checkpoint lock internal thread wait time (usecs)",
- "lock: handle-list lock eviction thread wait time (usecs)",
+ "lock: dhandle lock application thread time waiting for the dhandle lock (usecs)",
+ "lock: dhandle lock internal thread time waiting for the dhandle lock (usecs)",
+ "lock: dhandle read lock acquisitions",
+ "lock: dhandle write lock acquisitions",
"lock: metadata lock acquisitions",
"lock: metadata lock application thread wait time (usecs)",
"lock: metadata lock internal thread wait time (usecs)",
"lock: schema lock acquisitions",
"lock: schema lock application thread wait time (usecs)",
"lock: schema lock internal thread wait time (usecs)",
- "lock: table lock acquisitions",
"lock: table lock application thread time waiting for the table lock (usecs)",
"lock: table lock internal thread time waiting for the table lock (usecs)",
+ "lock: table read lock acquisitions",
+ "lock: table write lock acquisitions",
"log: busy returns attempting to switch slots",
- "log: consolidated slot closures",
- "log: consolidated slot join active slot closed",
- "log: consolidated slot join races",
- "log: consolidated slot join transitions",
- "log: consolidated slot joins",
- "log: consolidated slot transitions unable to find free slot",
- "log: consolidated slot unbuffered writes",
"log: log bytes of payload data",
"log: log bytes written",
"log: log files manually zero-filled",
@@ -804,6 +815,19 @@ static const char * const __stats_connection_desc[] = {
"log: pre-allocated log files prepared",
"log: pre-allocated log files used",
"log: records processed by log scan",
+ "log: slot close lost race",
+ "log: slot close unbuffered waits",
+ "log: slot closures",
+ "log: slot join atomic update races",
+ "log: slot join calls atomic updates raced",
+ "log: slot join calls did not yield",
+ "log: slot join calls found active slot closed",
+ "log: slot join calls slept",
+ "log: slot join calls yielded",
+ "log: slot join found active slot closed",
+ "log: slot joins yield time (usecs)",
+ "log: slot transitions unable to find free slot",
+ "log: slot unbuffered writes",
"log: total in-memory size of compressed records",
"log: total log buffer size",
"log: total size of compressed records",
@@ -868,6 +892,7 @@ static const char * const __stats_connection_desc[] = {
"transaction: transaction sync calls",
"transaction: transactions committed",
"transaction: transactions rolled back",
+ "transaction: update conflicts",
};
int
@@ -969,6 +994,7 @@ __wt_stat_connection_clear_single(WT_CONNECTION_STATS *stats)
stats->cache_eviction_worker_removed = 0;
/* not clearing cache_eviction_stable_state_workers */
stats->cache_eviction_force_fail = 0;
+ stats->cache_eviction_force_fail_time = 0;
/* not clearing cache_eviction_walks_active */
stats->cache_eviction_walks_started = 0;
stats->cache_eviction_force_retune = 0;
@@ -993,7 +1019,9 @@ __wt_stat_connection_clear_single(WT_CONNECTION_STATS *stats)
stats->cache_write_lookaside = 0;
/* not clearing cache_pages_inuse */
stats->cache_eviction_force = 0;
+ stats->cache_eviction_force_time = 0;
stats->cache_eviction_force_delete = 0;
+ stats->cache_eviction_force_delete_time = 0;
stats->cache_eviction_app = 0;
stats->cache_eviction_pages_queued = 0;
stats->cache_eviction_pages_queued_urgent = 0;
@@ -1014,6 +1042,7 @@ __wt_stat_connection_clear_single(WT_CONNECTION_STATS *stats)
stats->cache_eviction_clean = 0;
stats->cond_auto_wait_reset = 0;
stats->cond_auto_wait = 0;
+ stats->time_travel = 0;
/* not clearing file_open */
stats->memory_allocation = 0;
stats->memory_free = 0;
@@ -1026,9 +1055,11 @@ __wt_stat_connection_clear_single(WT_CONNECTION_STATS *stats)
stats->write_io = 0;
stats->cursor_create = 0;
stats->cursor_insert = 0;
+ stats->cursor_modify = 0;
stats->cursor_next = 0;
stats->cursor_prev = 0;
stats->cursor_remove = 0;
+ stats->cursor_reserve = 0;
stats->cursor_reset = 0;
stats->cursor_restart = 0;
stats->cursor_search = 0;
@@ -1046,24 +1077,21 @@ __wt_stat_connection_clear_single(WT_CONNECTION_STATS *stats)
stats->lock_checkpoint_count = 0;
stats->lock_checkpoint_wait_application = 0;
stats->lock_checkpoint_wait_internal = 0;
- stats->lock_handle_list_wait_eviction = 0;
+ stats->lock_dhandle_wait_application = 0;
+ stats->lock_dhandle_wait_internal = 0;
+ stats->lock_dhandle_read_count = 0;
+ stats->lock_dhandle_write_count = 0;
stats->lock_metadata_count = 0;
stats->lock_metadata_wait_application = 0;
stats->lock_metadata_wait_internal = 0;
stats->lock_schema_count = 0;
stats->lock_schema_wait_application = 0;
stats->lock_schema_wait_internal = 0;
- stats->lock_table_count = 0;
stats->lock_table_wait_application = 0;
stats->lock_table_wait_internal = 0;
+ stats->lock_table_read_count = 0;
+ stats->lock_table_write_count = 0;
stats->log_slot_switch_busy = 0;
- stats->log_slot_closes = 0;
- stats->log_slot_active_closed = 0;
- stats->log_slot_races = 0;
- stats->log_slot_transitions = 0;
- stats->log_slot_joins = 0;
- stats->log_slot_no_free_slots = 0;
- stats->log_slot_unbuffered = 0;
stats->log_bytes_payload = 0;
stats->log_bytes_written = 0;
stats->log_zero_fills = 0;
@@ -1090,6 +1118,19 @@ __wt_stat_connection_clear_single(WT_CONNECTION_STATS *stats)
stats->log_prealloc_files = 0;
stats->log_prealloc_used = 0;
stats->log_scan_records = 0;
+ stats->log_slot_close_race = 0;
+ stats->log_slot_close_unbuf = 0;
+ stats->log_slot_closes = 0;
+ stats->log_slot_races = 0;
+ stats->log_slot_yield_race = 0;
+ stats->log_slot_immediate = 0;
+ stats->log_slot_yield_close = 0;
+ stats->log_slot_yield_sleep = 0;
+ stats->log_slot_yield = 0;
+ stats->log_slot_active_closed = 0;
+ /* not clearing log_slot_yield_duration */
+ stats->log_slot_no_free_slots = 0;
+ stats->log_slot_unbuffered = 0;
stats->log_compress_mem = 0;
/* not clearing log_buffer_size */
stats->log_compress_len = 0;
@@ -1154,6 +1195,7 @@ __wt_stat_connection_clear_single(WT_CONNECTION_STATS *stats)
stats->txn_sync = 0;
stats->txn_commit = 0;
stats->txn_rollback = 0;
+ stats->txn_update_conflict = 0;
}
void
@@ -1254,6 +1296,8 @@ __wt_stat_connection_aggregate(
WT_STAT_READ(from, cache_eviction_stable_state_workers);
to->cache_eviction_force_fail +=
WT_STAT_READ(from, cache_eviction_force_fail);
+ to->cache_eviction_force_fail_time +=
+ WT_STAT_READ(from, cache_eviction_force_fail_time);
to->cache_eviction_walks_active +=
WT_STAT_READ(from, cache_eviction_walks_active);
to->cache_eviction_walks_started +=
@@ -1293,8 +1337,12 @@ __wt_stat_connection_aggregate(
WT_STAT_READ(from, cache_write_lookaside);
to->cache_pages_inuse += WT_STAT_READ(from, cache_pages_inuse);
to->cache_eviction_force += WT_STAT_READ(from, cache_eviction_force);
+ to->cache_eviction_force_time +=
+ WT_STAT_READ(from, cache_eviction_force_time);
to->cache_eviction_force_delete +=
WT_STAT_READ(from, cache_eviction_force_delete);
+ to->cache_eviction_force_delete_time +=
+ WT_STAT_READ(from, cache_eviction_force_delete_time);
to->cache_eviction_app += WT_STAT_READ(from, cache_eviction_app);
to->cache_eviction_pages_queued +=
WT_STAT_READ(from, cache_eviction_pages_queued);
@@ -1320,6 +1368,7 @@ __wt_stat_connection_aggregate(
to->cache_eviction_clean += WT_STAT_READ(from, cache_eviction_clean);
to->cond_auto_wait_reset += WT_STAT_READ(from, cond_auto_wait_reset);
to->cond_auto_wait += WT_STAT_READ(from, cond_auto_wait);
+ to->time_travel += WT_STAT_READ(from, time_travel);
to->file_open += WT_STAT_READ(from, file_open);
to->memory_allocation += WT_STAT_READ(from, memory_allocation);
to->memory_free += WT_STAT_READ(from, memory_free);
@@ -1332,9 +1381,11 @@ __wt_stat_connection_aggregate(
to->write_io += WT_STAT_READ(from, write_io);
to->cursor_create += WT_STAT_READ(from, cursor_create);
to->cursor_insert += WT_STAT_READ(from, cursor_insert);
+ to->cursor_modify += WT_STAT_READ(from, cursor_modify);
to->cursor_next += WT_STAT_READ(from, cursor_next);
to->cursor_prev += WT_STAT_READ(from, cursor_prev);
to->cursor_remove += WT_STAT_READ(from, cursor_remove);
+ to->cursor_reserve += WT_STAT_READ(from, cursor_reserve);
to->cursor_reset += WT_STAT_READ(from, cursor_reset);
to->cursor_restart += WT_STAT_READ(from, cursor_restart);
to->cursor_search += WT_STAT_READ(from, cursor_search);
@@ -1355,8 +1406,14 @@ __wt_stat_connection_aggregate(
WT_STAT_READ(from, lock_checkpoint_wait_application);
to->lock_checkpoint_wait_internal +=
WT_STAT_READ(from, lock_checkpoint_wait_internal);
- to->lock_handle_list_wait_eviction +=
- WT_STAT_READ(from, lock_handle_list_wait_eviction);
+ to->lock_dhandle_wait_application +=
+ WT_STAT_READ(from, lock_dhandle_wait_application);
+ to->lock_dhandle_wait_internal +=
+ WT_STAT_READ(from, lock_dhandle_wait_internal);
+ to->lock_dhandle_read_count +=
+ WT_STAT_READ(from, lock_dhandle_read_count);
+ to->lock_dhandle_write_count +=
+ WT_STAT_READ(from, lock_dhandle_write_count);
to->lock_metadata_count += WT_STAT_READ(from, lock_metadata_count);
to->lock_metadata_wait_application +=
WT_STAT_READ(from, lock_metadata_wait_application);
@@ -1367,21 +1424,15 @@ __wt_stat_connection_aggregate(
WT_STAT_READ(from, lock_schema_wait_application);
to->lock_schema_wait_internal +=
WT_STAT_READ(from, lock_schema_wait_internal);
- to->lock_table_count += WT_STAT_READ(from, lock_table_count);
to->lock_table_wait_application +=
WT_STAT_READ(from, lock_table_wait_application);
to->lock_table_wait_internal +=
WT_STAT_READ(from, lock_table_wait_internal);
+ to->lock_table_read_count +=
+ WT_STAT_READ(from, lock_table_read_count);
+ to->lock_table_write_count +=
+ WT_STAT_READ(from, lock_table_write_count);
to->log_slot_switch_busy += WT_STAT_READ(from, log_slot_switch_busy);
- to->log_slot_closes += WT_STAT_READ(from, log_slot_closes);
- to->log_slot_active_closed +=
- WT_STAT_READ(from, log_slot_active_closed);
- to->log_slot_races += WT_STAT_READ(from, log_slot_races);
- to->log_slot_transitions += WT_STAT_READ(from, log_slot_transitions);
- to->log_slot_joins += WT_STAT_READ(from, log_slot_joins);
- to->log_slot_no_free_slots +=
- WT_STAT_READ(from, log_slot_no_free_slots);
- to->log_slot_unbuffered += WT_STAT_READ(from, log_slot_unbuffered);
to->log_bytes_payload += WT_STAT_READ(from, log_bytes_payload);
to->log_bytes_written += WT_STAT_READ(from, log_bytes_written);
to->log_zero_fills += WT_STAT_READ(from, log_zero_fills);
@@ -1412,6 +1463,22 @@ __wt_stat_connection_aggregate(
to->log_prealloc_files += WT_STAT_READ(from, log_prealloc_files);
to->log_prealloc_used += WT_STAT_READ(from, log_prealloc_used);
to->log_scan_records += WT_STAT_READ(from, log_scan_records);
+ to->log_slot_close_race += WT_STAT_READ(from, log_slot_close_race);
+ to->log_slot_close_unbuf += WT_STAT_READ(from, log_slot_close_unbuf);
+ to->log_slot_closes += WT_STAT_READ(from, log_slot_closes);
+ to->log_slot_races += WT_STAT_READ(from, log_slot_races);
+ to->log_slot_yield_race += WT_STAT_READ(from, log_slot_yield_race);
+ to->log_slot_immediate += WT_STAT_READ(from, log_slot_immediate);
+ to->log_slot_yield_close += WT_STAT_READ(from, log_slot_yield_close);
+ to->log_slot_yield_sleep += WT_STAT_READ(from, log_slot_yield_sleep);
+ to->log_slot_yield += WT_STAT_READ(from, log_slot_yield);
+ to->log_slot_active_closed +=
+ WT_STAT_READ(from, log_slot_active_closed);
+ to->log_slot_yield_duration +=
+ WT_STAT_READ(from, log_slot_yield_duration);
+ to->log_slot_no_free_slots +=
+ WT_STAT_READ(from, log_slot_no_free_slots);
+ to->log_slot_unbuffered += WT_STAT_READ(from, log_slot_unbuffered);
to->log_compress_mem += WT_STAT_READ(from, log_compress_mem);
to->log_buffer_size += WT_STAT_READ(from, log_buffer_size);
to->log_compress_len += WT_STAT_READ(from, log_compress_len);
@@ -1515,6 +1582,7 @@ __wt_stat_connection_aggregate(
to->txn_sync += WT_STAT_READ(from, txn_sync);
to->txn_commit += WT_STAT_READ(from, txn_commit);
to->txn_rollback += WT_STAT_READ(from, txn_rollback);
+ to->txn_update_conflict += WT_STAT_READ(from, txn_update_conflict);
}
static const char * const __stats_join_desc[] = {