summaryrefslogtreecommitdiff
path: root/mysql-test/t/key_cache.test
diff options
context:
space:
mode:
authorunknown <ingo@mysql.com>2004-05-03 15:55:21 +0200
committerunknown <ingo@mysql.com>2004-05-03 15:55:21 +0200
commitb482283cf732074ea3c9f3005f0b5140dbbdbbfe (patch)
treef82a460f807cff5eea040e4950e8f7b334c28f33 /mysql-test/t/key_cache.test
parentc5daed7c89c3adfc173127881601a7b5490a6445 (diff)
downloadmariadb-git-b482283cf732074ea3c9f3005f0b5140dbbdbbfe.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". include/keycache.h: WL#1700 - Properly count key_blocks_used and key_blocks_current. free_block_list is the new free blocks list. It is implemented like a stack (LIFO). blocks_unused holds the number of never used blocks plus the number of blocks in the free list. Removed the variable global_blocks_used, as it was always the same as blocks_used. mysql-test/r/key_cache.result: WL#1700 - Properly count key_blocks_used and key_blocks_current. Inserted some commands which show how key_blocks_used and key_blocks_unused work. mysql-test/t/key_cache.test: WL#1700 - Properly count key_blocks_used and key_blocks_current. Inserted some commands which show how key_blocks_used and key_blocks_unused work. mysys/mf_keycache.c: WL#1700 - Properly count key_blocks_used and key_blocks_current. Introduced a new free blocks list. The introductory comment says it all (I hope). Removed the variable global_blocks_used, as it was always the same as blocks_used. sql/mysqld.cc: WL#1700 - Properly count key_blocks_used and key_blocks_current. The blocks_unused count can be queried by "show status like key_blocks_unused". Removed the variable global_blocks_used, as it was always the same as blocks_used. Introduced SHOW_KEY_CACHE_CONST_LONG for status variables that must not be modified (i.e. flushed to zero). sql/sql_show.cc: WL#1700 - Properly count key_blocks_used and key_blocks_current. Introduced SHOW_KEY_CACHE_CONST_LONG for status variables that must not be modified (i.e. flushed to zero). sql/sql_test.cc: WL#1700 - Properly count key_blocks_used and key_blocks_current. Removed the variable global_blocks_used, as it was always the same as blocks_used. sql/structs.h: WL#1700 - Properly count key_blocks_used and key_blocks_current. Introduced SHOW_KEY_CACHE_CONST_LONG for status variables that must not be modified (i.e. flushed to zero).
Diffstat (limited to 'mysql-test/t/key_cache.test')
-rw-r--r--mysql-test/t/key_cache.test12
1 files changed, 12 insertions, 0 deletions
diff --git a/mysql-test/t/key_cache.test b/mysql-test/t/key_cache.test
index 2bf5cdbcf6f..ca846a31def 100644
--- a/mysql-test/t/key_cache.test
+++ b/mysql-test/t/key_cache.test
@@ -66,6 +66,10 @@ set global keycache1.key_buffer_size=1024*1024;
create table t1 (p int primary key, a char(10)) delay_key_write=1;
create table t2 (p int primary key, i int, a char(10), key k1(i), key k2(a));
+show status like 'key_blocks_used';
+show status like 'The below may fail on 64-bit systems (ingo)';
+show status like 'key_blocks_unused'; # This may fail on 64-bit systems (ingo)
+
insert into t1 values (1, 'qqqq'), (11, 'yyyy');
insert into t2 values (1, 1, 'qqqq'), (2, 1, 'pppp'),
(3, 1, 'yyyy'), (4, 3, 'zzzz');
@@ -75,6 +79,10 @@ select * from t2;
update t1 set p=2 where p=1;
update t2 set i=2 where i=1;
+show status like 'key_blocks_used';
+show status like 'The below may fail on 64-bit systems (ingo)';
+show status like 'key_blocks_unused'; # This may fail on 64-bit systems (ingo)
+
cache index t1 key (`primary`) in keycache1;
explain select p from t1;
@@ -133,6 +141,10 @@ cache index t3 in keycache2;
cache index t1,t2 in default;
drop table t1,t2,t3;
+show status like 'key_blocks_used';
+show status like 'The below may fail on 64-bit systems (ingo)';
+show status like 'key_blocks_unused'; # This may fail on 64-bit systems (ingo)
+
# Cleanup
# We don't reset keycache2 as we want to ensure that mysqld will reset it
set global keycache2.key_buffer_size=0;