diff options
author | unknown <ingo@mysql.com> | 2004-05-03 15:55:21 +0200 |
---|---|---|
committer | unknown <ingo@mysql.com> | 2004-05-03 15:55:21 +0200 |
commit | b482283cf732074ea3c9f3005f0b5140dbbdbbfe (patch) | |
tree | f82a460f807cff5eea040e4950e8f7b334c28f33 /mysql-test/t/key_cache.test | |
parent | c5daed7c89c3adfc173127881601a7b5490a6445 (diff) | |
download | mariadb-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.test | 12 |
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; |