summaryrefslogtreecommitdiff
path: root/sql/mysqld.cc
diff options
context:
space:
mode:
authorunknown <igor@rurik.mysql.com>2003-08-09 11:12:22 -0700
committerunknown <igor@rurik.mysql.com>2003-08-09 11:12:22 -0700
commitcbd85f9deb0f407dcb50bd818b20e16aa77e6b2b (patch)
treeea16bf3e27f2e3cd5852920dd399f64853a919b7 /sql/mysqld.cc
parentaf6d20830c3f192f1b617b610d1cc0def535f1fb (diff)
downloadmariadb-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.cc37
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;
}