summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authoringo@mysql.com <>2004-05-03 15:55:21 +0200
committeringo@mysql.com <>2004-05-03 15:55:21 +0200
commit5a78b4c746555d4c1891ce82d4c0b2d23125caff (patch)
treef82a460f807cff5eea040e4950e8f7b334c28f33 /sql
parentb89e5bbc9528d2acd77e5dcfd22a373ab5a1e0c8 (diff)
downloadmariadb-git-5a78b4c746555d4c1891ce82d4c0b2d23125caff.tar.gz
WL#1700 - Properly count key_blocks_used and key_blocks_current.
Introduced a new free blocks list. Free blocks are now re-used before new blocks are allocated from the pool. There is a new status variable which can be queried by "show status like key_blocks_unused".
Diffstat (limited to 'sql')
-rw-r--r--sql/mysqld.cc6
-rw-r--r--sql/sql_show.cc1
-rw-r--r--sql/sql_test.cc2
-rw-r--r--sql/structs.h3
4 files changed, 8 insertions, 4 deletions
diff --git a/sql/mysqld.cc b/sql/mysqld.cc
index 3ae5914b439..85f6e4853bb 100644
--- a/sql/mysqld.cc
+++ b/sql/mysqld.cc
@@ -4839,8 +4839,10 @@ struct show_var_st status_vars[]= {
{"Handler_discover", (char*) &ha_discover_count, SHOW_LONG},
{"Key_blocks_not_flushed", (char*) &dflt_key_cache_var.global_blocks_changed,
SHOW_KEY_CACHE_LONG},
- {"Key_blocks_used", (char*) &dflt_key_cache_var.global_blocks_used,
- SHOW_KEY_CACHE_LONG},
+ {"Key_blocks_used", (char*) &dflt_key_cache_var.blocks_used,
+ SHOW_KEY_CACHE_CONST_LONG},
+ {"Key_blocks_unused", (char*) &dflt_key_cache_var.blocks_unused,
+ SHOW_KEY_CACHE_CONST_LONG},
{"Key_read_requests", (char*) &dflt_key_cache_var.global_cache_r_requests,
SHOW_KEY_CACHE_LONG},
{"Key_reads", (char*) &dflt_key_cache_var.global_cache_read,
diff --git a/sql/sql_show.cc b/sql/sql_show.cc
index 448dc825a26..51b44af63ec 100644
--- a/sql/sql_show.cc
+++ b/sql/sql_show.cc
@@ -2021,6 +2021,7 @@ int mysqld_show(THD *thd, const char *wild, show_var_st *variables,
#endif /* HAVE_OPENSSL */
case SHOW_KEY_CACHE_LONG:
+ case SHOW_KEY_CACHE_CONST_LONG:
value= (value-(char*) &dflt_key_cache_var)+ (char*) sql_key_cache;
end= int10_to_str(*(long*) value, buff, 10);
break;
diff --git a/sql/sql_test.cc b/sql/sql_test.cc
index cc3d30e5983..d992c93f8fc 100644
--- a/sql/sql_test.cc
+++ b/sql/sql_test.cc
@@ -329,7 +329,7 @@ reads: %10lu\n\n",
name,
(ulong) key_cache->param_buff_size, key_cache->param_block_size,
key_cache->param_division_limit, key_cache->param_age_threshold,
- key_cache->global_blocks_used,key_cache->global_blocks_changed,
+ key_cache->blocks_used,key_cache->global_blocks_changed,
key_cache->global_cache_w_requests,key_cache->global_cache_write,
key_cache->global_cache_r_requests,key_cache->global_cache_read);
}
diff --git a/sql/structs.h b/sql/structs.h
index 86d754f00d6..d9607b220f7 100644
--- a/sql/structs.h
+++ b/sql/structs.h
@@ -183,7 +183,8 @@ enum SHOW_TYPE
SHOW_SSL_CTX_SESS_TIMEOUTS, SHOW_SSL_CTX_SESS_CACHE_FULL,
SHOW_SSL_GET_CIPHER_LIST,
#endif /* HAVE_OPENSSL */
- SHOW_RPL_STATUS, SHOW_SLAVE_RUNNING, SHOW_KEY_CACHE_LONG
+ SHOW_RPL_STATUS, SHOW_SLAVE_RUNNING,
+ SHOW_KEY_CACHE_LONG, SHOW_KEY_CACHE_CONST_LONG
};
enum SHOW_COMP_OPTION { SHOW_OPTION_YES, SHOW_OPTION_NO, SHOW_OPTION_DISABLED};