diff options
author | unknown <igor@rurik.mysql.com> | 2003-08-09 11:12:22 -0700 |
---|---|---|
committer | unknown <igor@rurik.mysql.com> | 2003-08-09 11:12:22 -0700 |
commit | cbd85f9deb0f407dcb50bd818b20e16aa77e6b2b (patch) | |
tree | ea16bf3e27f2e3cd5852920dd399f64853a919b7 /sql/mysqld.cc | |
parent | af6d20830c3f192f1b617b610d1cc0def535f1fb (diff) | |
download | mariadb-git-cbd85f9deb0f407dcb50bd818b20e16aa77e6b2b.tar.gz |
set_var.cc, mysqld.cc, handler.cc, set_var.h, handler.h:
Added key cache parameters for midpoint insertion strategy
Many files:
Added midpoint insertion strategy for key cache
mi_test2.c:
Added a parameter to resize_key_cache
mysys/mf_keycache.c:
Added midpoint insertion strategy for key cache
myisam/mi_check.c:
Added midpoint insertion strategy for key cache
myisam/mi_page.c:
Added midpoint insertion strategy for key cache
myisam/mi_range.c:
Added midpoint insertion strategy for key cache
myisam/rt_index.c:
Added midpoint insertion strategy for key cache
myisam/rt_split.c:
Added midpoint insertion strategy for key cache
myisam/mi_delete.c:
Added midpoint insertion strategy for key cache
myisam/mi_preload.c:
Added midpoint insertion strategy for key cache
myisam/mi_search.c:
Added midpoint insertion strategy for key cache
myisam/mi_write.c:
Added midpoint insertion strategy for key cache
myisam/rt_key.c:
Added midpoint insertion strategy for key cache
myisam/mi_test2.c:
Added a parameter to resize_key_cache
isam/_page.c:
Added midpoint insertion strategy for key cache
include/my_sys.h:
Added midpoint insertion strategy for key cache
myisam/myisamdef.h:
Added midpoint insertion strategy for key cache
sql/handler.h:
Added key cache parameters for midpoint insertion strategy.
sql/set_var.h:
Added key cache parameters for midpoint insertion strategy.
sql/handler.cc:
Added key cache parameters for midpoint insertion strategy.
sql/mysqld.cc:
Added key cache parameters for midpoint insertion strategy.
sql/set_var.cc:
Added key cache parameters for midpoint insertion strategy.
Diffstat (limited to 'sql/mysqld.cc')
-rw-r--r-- | sql/mysqld.cc | 37 |
1 files changed, 28 insertions, 9 deletions
diff --git a/sql/mysqld.cc b/sql/mysqld.cc index 59320e6bb48..666c9dd3f99 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -3441,7 +3441,9 @@ enum options OPT_FLUSH_TIME, OPT_FT_MIN_WORD_LEN, OPT_FT_MAX_WORD_LEN, OPT_FT_MAX_WORD_LEN_FOR_SORT, OPT_FT_STOPWORD_FILE, OPT_INTERACTIVE_TIMEOUT, OPT_JOIN_BUFF_SIZE, - OPT_KEY_BUFFER_SIZE, OPT_KEY_CACHE_BLOCK_SIZE, OPT_LONG_QUERY_TIME, + OPT_KEY_BUFFER_SIZE, OPT_KEY_CACHE_BLOCK_SIZE, + OPT_KEY_CACHE_DIVISION_LIMIT, OPT_KEY_CACHE_AGE_THRESHOLD, + OPT_LONG_QUERY_TIME, OPT_LOWER_CASE_TABLE_NAMES, OPT_MAX_ALLOWED_PACKET, OPT_MAX_BINLOG_CACHE_SIZE, OPT_MAX_BINLOG_SIZE, OPT_MAX_CONNECTIONS, OPT_MAX_CONNECT_ERRORS, @@ -4133,6 +4135,16 @@ replicating a LOAD DATA INFILE command.", (gptr*) &dflt_key_cache_var.block_size, (gptr*) &dflt_key_cache_var.block_size, 0, GET_ULONG, REQUIRED_ARG, KEY_CACHE_BLOCK_SIZE , 512, 1024*16, MALLOC_OVERHEAD, 512, 0}, + {"key_cache_division_limit", OPT_KEY_CACHE_DIVISION_LIMIT, + "The minimum percentage of warm blocks in key cache", + (gptr*) &dflt_key_cache_var.division_limit, + (gptr*) &dflt_key_cache_var.division_limit, 0, GET_ULONG, + REQUIRED_ARG, 100, 1, 100, 0, 1, 0}, + {"key_cache_division_age_threshold", OPT_KEY_CACHE_AGE_THRESHOLD, + "This characterizes the number of hits a hot block has to be untouched until it is considered aged enough to be downgraded to a warm block. This specifies the percentage ratio of that number of hits to the total number of blocks in key cache", + (gptr*) &dflt_key_cache_var.age_threshold, + (gptr*) &dflt_key_cache_var.age_threshold, 0, GET_ULONG, + REQUIRED_ARG, 300, 100, ~0L, 0, 100, 0}, {"long_query_time", OPT_LONG_QUERY_TIME, "Log all queries that have taken more than long_query_time seconds to execute to file.", (gptr*) &global_system_variables.long_query_time, @@ -5352,21 +5364,26 @@ mysql_getopt_value(const char *keyname, uint key_length, { switch (option->id) { case OPT_KEY_BUFFER_SIZE: - { - KEY_CACHE_VAR *key_cache; - if (!(key_cache= get_or_create_key_cache(keyname, key_length))) - exit(1); - return (gptr*) &key_cache->buff_size; - } case OPT_KEY_CACHE_BLOCK_SIZE: + case OPT_KEY_CACHE_DIVISION_LIMIT: + case OPT_KEY_CACHE_AGE_THRESHOLD: { KEY_CACHE_VAR *key_cache; if (!(key_cache= get_or_create_key_cache(keyname, key_length))) exit(1); - return (gptr*) &key_cache->block_size; + switch (option->id) { + case OPT_KEY_BUFFER_SIZE: + return (gptr*) &key_cache->buff_size; + case OPT_KEY_CACHE_BLOCK_SIZE: + return (gptr*) &key_cache->block_size; + case OPT_KEY_CACHE_DIVISION_LIMIT: + return (gptr*) &key_cache->division_limit; + case OPT_KEY_CACHE_AGE_THRESHOLD: + return (gptr*) &key_cache->age_threshold; + } } } - return option->value; + return option->value; } @@ -5426,6 +5443,8 @@ static void get_options(int argc,char **argv) KEY_CACHE_VAR *key_cache= &dflt_key_cache_var; dflt_key_cache_block_size= key_cache->block_size; dflt_key_buff_size= key_cache->buff_size; + dflt_key_cache_division_limit= key_cache->division_limit; + dflt_key_cache_age_threshold= key_cache->age_threshold; } |