Skip to content

Commit

Permalink
Port Extra Stats: Insert Buffer and Adaptive Hash
Browse files Browse the repository at this point in the history
Summary:
Add insert buffer and adaptive hash stats to SHOW STATUS

Add these to SHOW STATUS:

Innodb_adaptive_hash_hits
	Adaptive hash search hits

Innodb_adaptive_hash_misses
	Adaptive hash search misses

Innodb_ibuf_merges
	Number of secondary index pages updated with merged records

Innodb_ibuf_inserts
	Number of records added to the insert buffer

Innodb_ibuf_delete_marks
	Number of records added to the delete mark buffer

Innodb_ibuf_deletes
	Number of records added to the delete buffer

Innodb_ibuf_size
	Size of the insert buffer in pages

Reference patch: facebook@1678522

Differential Revision: D6187284 (facebook@e518b86)

fbshipit-source-id: 6ab66d292b7
  • Loading branch information
Artem Danilov authored and inikep committed Jul 14, 2021
1 parent 8a47d05 commit 4a9cc15
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 0 deletions.
14 changes: 14 additions & 0 deletions storage/innobase/handler/ha_innodb.cc
Expand Up @@ -913,6 +913,10 @@ static MYSQL_THDVAR_ULONG(parallel_read_threads, PLUGIN_VAR_RQCMDARG,
0);

static SHOW_VAR innodb_status_variables[] = {
{"adaptive_hash_hits", (char *)&export_vars.innodb_hash_searches, SHOW_LONG,
SHOW_SCOPE_GLOBAL},
{"adaptive_hash_misses", (char *)&export_vars.innodb_hash_nonsearches,
SHOW_LONG, SHOW_SCOPE_GLOBAL},
{"buffer_pool_dump_status",
(char *)&export_vars.innodb_buffer_pool_dump_status, SHOW_CHAR,
SHOW_SCOPE_GLOBAL},
Expand Down Expand Up @@ -990,6 +994,16 @@ static SHOW_VAR innodb_status_variables[] = {
SHOW_LONG, SHOW_SCOPE_GLOBAL},
{"dblwr_writes", (char *)&export_vars.innodb_dblwr_writes, SHOW_LONG,
SHOW_SCOPE_GLOBAL},
{"ibuf_delete_marks", (char *)&export_vars.innodb_ibuf_delete_marks,
SHOW_LONG, SHOW_SCOPE_GLOBAL},
{"ibuf_deletes", (char *)&export_vars.innodb_ibuf_deletes, SHOW_LONG,
SHOW_SCOPE_GLOBAL},
{"ibuf_merges", (char *)&export_vars.innodb_ibuf_merges, SHOW_LONG,
SHOW_SCOPE_GLOBAL},
{"ibuf_inserts", (char *)&export_vars.innodb_ibuf_inserts, SHOW_LONG,
SHOW_SCOPE_GLOBAL},
{"ibuf_size", (char *)&export_vars.innodb_ibuf_size, SHOW_LONG,
SHOW_SCOPE_GLOBAL},
{"log_waits", (char *)&export_vars.innodb_log_waits, SHOW_LONG,
SHOW_SCOPE_GLOBAL},
{"log_write_requests", (char *)&export_vars.innodb_log_write_requests,
Expand Down
7 changes: 7 additions & 0 deletions storage/innobase/include/srv0srv.h
Expand Up @@ -1145,6 +1145,13 @@ struct export_var_t {
ulint innodb_buffer_pool_read_ahead_evicted; /*!< srv_read_ahead evicted*/
ulint innodb_dblwr_pages_written; /*!< srv_dblwr_pages_written */
ulint innodb_dblwr_writes; /*!< srv_dblwr_writes */
ulint innodb_hash_nonsearches; /*!< btr_cur_n_sea */
ulint innodb_hash_searches; /*!< btr_cur_n_non_sea */
ulint innodb_ibuf_inserts; /*!< ibuf->n_inserts */
ulint innodb_ibuf_delete_marks; /*!< ibuf->n_delete_marks */
ulint innodb_ibuf_deletes; /*!< ibuf->n_deletes */
ulint innodb_ibuf_merges; /*!< ibuf->n_merges */
ulint innodb_ibuf_size; /*!< ibuf->size */
ulint innodb_log_waits; /*!< srv_log_waits */
ulint innodb_log_write_requests; /*!< srv_log_write_requests */
ulint innodb_log_writes; /*!< srv_log_writes */
Expand Down
9 changes: 9 additions & 0 deletions storage/innobase/srv/srv0srv.cc
Expand Up @@ -1584,6 +1584,15 @@ void srv_export_innodb_status(void) {
export_vars.innodb_buffer_pool_pages_misc =
buf_pool_get_n_pages() - LRU_len - free_len;

export_vars.innodb_hash_searches = btr_cur_n_sea;
export_vars.innodb_hash_nonsearches = btr_cur_n_non_sea;
export_vars.innodb_ibuf_inserts = ibuf->n_merged_ops[IBUF_OP_INSERT];
export_vars.innodb_ibuf_delete_marks =
ibuf->n_merged_ops[IBUF_OP_DELETE_MARK];
export_vars.innodb_ibuf_deletes = ibuf->n_merged_ops[IBUF_OP_DELETE];
export_vars.innodb_ibuf_merges = ibuf->n_merges;
export_vars.innodb_ibuf_size = ibuf->size;

export_vars.innodb_page_size = UNIV_PAGE_SIZE;

export_vars.innodb_log_waits = srv_stats.log_waits;
Expand Down

0 comments on commit 4a9cc15

Please sign in to comment.