Commit 5fe65297 authored by unknown's avatar unknown

Bug#12920 - key_read_requests counter appears to re-set

After merge fix.


include/keycache.h:
  Bug#12920 - key_read_requests counter appears to re-set
  After merge fix.
  Status variables moved into KEY_CACHE in 4.1.
  Enlarging them there.
include/my_sys.h:
  Bug#12920 - key_read_requests counter appears to re-set
  After merge fix.
  Status variables moved into KEY_CACHE in 4.1.
  Removed unused global variables.
myisam/mi_test2.c:
  Bug#12920 - key_read_requests counter appears to re-set
  After merge fix.
  Status variables moved into KEY_CACHE in 4.1.
  Changed to print default key cache status.
mysys/mf_keycache.c:
  Bug#12920 - key_read_requests counter appears to re-set
  After merge fix.
  Status variables moved into KEY_CACHE in 4.1.
  Changed their debug printout.
sql/mysqld.cc:
  Bug#12920 - key_read_requests counter appears to re-set
  After merge fix.
  Changed to print full value.
sql/sql_show.cc:
  Bug#12920 - key_read_requests counter appears to re-set
  After merge fix.
  Added a branch for long long values.
sql/sql_test.cc:
  Bug#12920 - key_read_requests counter appears to re-set
  After merge fix.
  changed to print full values.
sql/structs.h:
  Bug#12920 - key_read_requests counter appears to re-set
  After merge fix.
  Added a branch for long long keycache values.
parent 683e228a
...@@ -90,10 +90,10 @@ typedef struct st_key_cache ...@@ -90,10 +90,10 @@ typedef struct st_key_cache
/* Statistics variables. These are reset in reset_key_cache_counters(). */ /* Statistics variables. These are reset in reset_key_cache_counters(). */
ulong global_blocks_changed; /* number of currently dirty blocks */ ulong global_blocks_changed; /* number of currently dirty blocks */
ulong global_cache_w_requests;/* number of write requests (write hits) */ ulonglong global_cache_w_requests;/* number of write requests (write hits) */
ulong global_cache_write; /* number of writes from the cache to files */ ulonglong global_cache_write; /* number of writes from cache to files */
ulong global_cache_r_requests;/* number of read requests (read hits) */ ulonglong global_cache_r_requests;/* number of read requests (read hits) */
ulong global_cache_read; /* number of reads from files to the cache */ ulonglong global_cache_read; /* number of reads from files to cache */
int blocks; /* max number of blocks in the cache */ int blocks; /* max number of blocks in the cache */
my_bool in_init; /* Set to 1 in MySQL during init/resize */ my_bool in_init; /* Set to 1 in MySQL during init/resize */
......
...@@ -216,9 +216,6 @@ extern CHARSET_INFO *all_charsets[256]; ...@@ -216,9 +216,6 @@ extern CHARSET_INFO *all_charsets[256];
extern CHARSET_INFO compiled_charsets[]; extern CHARSET_INFO compiled_charsets[];
/* statistics */ /* statistics */
extern ulonglong my_cache_w_requests, my_cache_write;
extern ulonglong my_cache_r_requests, my_cache_read;
extern ulong my_blocks_used, my_blocks_changed;
extern ulong my_file_opened,my_stream_opened, my_tmp_file_created; extern ulong my_file_opened,my_stream_opened, my_tmp_file_created;
extern uint mysys_usage_id; extern uint mysys_usage_id;
extern my_bool my_init_done; extern my_bool my_init_done;
......
...@@ -831,7 +831,6 @@ int main(int argc, char *argv[]) ...@@ -831,7 +831,6 @@ int main(int argc, char *argv[])
puts("Locking used"); puts("Locking used");
if (use_blob) if (use_blob)
puts("blobs used"); puts("blobs used");
#if 0
printf("key cache status: \n\ printf("key cache status: \n\
blocks used:%10lu\n\ blocks used:%10lu\n\
not flushed:%10lu\n\ not flushed:%10lu\n\
...@@ -839,9 +838,12 @@ w_requests: %10lu\n\ ...@@ -839,9 +838,12 @@ w_requests: %10lu\n\
writes: %10lu\n\ writes: %10lu\n\
r_requests: %10lu\n\ r_requests: %10lu\n\
reads: %10lu\n", reads: %10lu\n",
my_blocks_used, my_blocks_changed, dflt_key_cache->blocks_used,
(ulong) my_cache_w_requests, (ulong) my_cache_write, dflt_key_cache->global_blocks_changed,
(ulong) my_cache_r_requests, (ulong) my_cache_read); (ulong) dflt_key_cache->global_cache_w_requests,
(ulong) dflt_key_cache->global_cache_write,
(ulong) dflt_key_cache->global_cache_r_requests,
(ulong) dflt_key_cache->global_cache_read);
} }
end_key_cache(dflt_key_cache,1); end_key_cache(dflt_key_cache,1);
if (blob_buffer) if (blob_buffer)
......
...@@ -632,12 +632,13 @@ void end_key_cache(KEY_CACHE *keycache, my_bool cleanup) ...@@ -632,12 +632,13 @@ void end_key_cache(KEY_CACHE *keycache, my_bool cleanup)
keycache->blocks_changed= 0; keycache->blocks_changed= 0;
} }
DBUG_PRINT("status", DBUG_PRINT("status", ("used: %d changed: %d w_requests: %lu "
("used: %d changed: %d w_requests: %ld \ "writes: %lu r_requests: %lu reads: %lu",
writes: %ld r_requests: %ld reads: %ld", keycache->blocks_used, keycache->global_blocks_changed,
keycache->blocks_used, keycache->global_blocks_changed, (ulong) keycache->global_cache_w_requests,
keycache->global_cache_w_requests, keycache->global_cache_write, (ulong) keycache->global_cache_write,
keycache->global_cache_r_requests, keycache->global_cache_read)); (ulong) keycache->global_cache_r_requests,
(ulong) keycache->global_cache_read));
if (cleanup) if (cleanup)
{ {
......
...@@ -5544,13 +5544,13 @@ struct show_var_st status_vars[]= { ...@@ -5544,13 +5544,13 @@ struct show_var_st status_vars[]= {
{"Key_blocks_used", (char*) &dflt_key_cache_var.blocks_used, {"Key_blocks_used", (char*) &dflt_key_cache_var.blocks_used,
SHOW_KEY_CACHE_CONST_LONG}, SHOW_KEY_CACHE_CONST_LONG},
{"Key_read_requests", (char*) &dflt_key_cache_var.global_cache_r_requests, {"Key_read_requests", (char*) &dflt_key_cache_var.global_cache_r_requests,
SHOW_KEY_CACHE_LONG}, SHOW_KEY_CACHE_LONGLONG},
{"Key_reads", (char*) &dflt_key_cache_var.global_cache_read, {"Key_reads", (char*) &dflt_key_cache_var.global_cache_read,
SHOW_KEY_CACHE_LONG}, SHOW_KEY_CACHE_LONGLONG},
{"Key_write_requests", (char*) &dflt_key_cache_var.global_cache_w_requests, {"Key_write_requests", (char*) &dflt_key_cache_var.global_cache_w_requests,
SHOW_KEY_CACHE_LONG}, SHOW_KEY_CACHE_LONGLONG},
{"Key_writes", (char*) &dflt_key_cache_var.global_cache_write, {"Key_writes", (char*) &dflt_key_cache_var.global_cache_write,
SHOW_KEY_CACHE_LONG}, SHOW_KEY_CACHE_LONGLONG},
{"Max_used_connections", (char*) &max_used_connections, SHOW_LONG}, {"Max_used_connections", (char*) &max_used_connections, SHOW_LONG},
{"Not_flushed_delayed_rows", (char*) &delayed_rows_in_use, SHOW_LONG_CONST}, {"Not_flushed_delayed_rows", (char*) &delayed_rows_in_use, SHOW_LONG_CONST},
{"Open_files", (char*) &my_file_opened, SHOW_LONG_CONST}, {"Open_files", (char*) &my_file_opened, SHOW_LONG_CONST},
......
...@@ -2091,6 +2091,10 @@ int mysqld_show(THD *thd, const char *wild, show_var_st *variables, ...@@ -2091,6 +2091,10 @@ int mysqld_show(THD *thd, const char *wild, show_var_st *variables,
value= (value-(char*) &dflt_key_cache_var)+ (char*) dflt_key_cache; value= (value-(char*) &dflt_key_cache_var)+ (char*) dflt_key_cache;
end= int10_to_str(*(long*) value, buff, 10); end= int10_to_str(*(long*) value, buff, 10);
break; break;
case SHOW_KEY_CACHE_LONGLONG:
value= (value-(char*) &dflt_key_cache_var)+ (char*) dflt_key_cache;
end= longlong10_to_str(*(longlong*) value, buff, 10);
break;
case SHOW_UNDEF: // Show never happen case SHOW_UNDEF: // Show never happen
case SHOW_SYS: case SHOW_SYS:
break; // Return empty string break; // Return empty string
......
...@@ -309,6 +309,11 @@ static void display_table_locks(void) ...@@ -309,6 +309,11 @@ static void display_table_locks(void)
static int print_key_cache_status(const char *name, KEY_CACHE *key_cache) static int print_key_cache_status(const char *name, KEY_CACHE *key_cache)
{ {
char llbuff1[22];
char llbuff2[22];
char llbuff3[22];
char llbuff4[22];
if (!key_cache->key_cache_inited) if (!key_cache->key_cache_inited)
{ {
printf("%s: Not in use\n", name); printf("%s: Not in use\n", name);
...@@ -322,16 +327,18 @@ Division_limit: %10lu\n\ ...@@ -322,16 +327,18 @@ Division_limit: %10lu\n\
Age_limit: %10lu\n\ Age_limit: %10lu\n\
blocks used: %10lu\n\ blocks used: %10lu\n\
not flushed: %10lu\n\ not flushed: %10lu\n\
w_requests: %10lu\n\ w_requests: %10s\n\
writes: %10lu\n\ writes: %10s\n\
r_requests: %10lu\n\ r_requests: %10s\n\
reads: %10lu\n\n", reads: %10s\n\n",
name, name,
(ulong) key_cache->param_buff_size, key_cache->param_block_size, (ulong) key_cache->param_buff_size, key_cache->param_block_size,
key_cache->param_division_limit, key_cache->param_age_threshold, key_cache->param_division_limit, key_cache->param_age_threshold,
key_cache->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, llstr(key_cache->global_cache_w_requests,llbuff1),
key_cache->global_cache_r_requests,key_cache->global_cache_read); llstr(key_cache->global_cache_write,llbuff2),
llstr(key_cache->global_cache_r_requests,llbuff3),
llstr(key_cache->global_cache_read,llbuff4));
} }
return 0; return 0;
} }
......
...@@ -181,7 +181,7 @@ enum SHOW_TYPE ...@@ -181,7 +181,7 @@ enum SHOW_TYPE
SHOW_SSL_GET_CIPHER_LIST, SHOW_SSL_GET_CIPHER_LIST,
#endif /* HAVE_OPENSSL */ #endif /* HAVE_OPENSSL */
SHOW_RPL_STATUS, SHOW_SLAVE_RUNNING, SHOW_SLAVE_RETRIED_TRANS, SHOW_RPL_STATUS, SHOW_SLAVE_RUNNING, SHOW_SLAVE_RETRIED_TRANS,
SHOW_KEY_CACHE_LONG, SHOW_KEY_CACHE_CONST_LONG SHOW_KEY_CACHE_LONG, SHOW_KEY_CACHE_CONST_LONG, SHOW_KEY_CACHE_LONGLONG
}; };
enum SHOW_COMP_OPTION { SHOW_OPTION_YES, SHOW_OPTION_NO, SHOW_OPTION_DISABLED}; enum SHOW_COMP_OPTION { SHOW_OPTION_YES, SHOW_OPTION_NO, SHOW_OPTION_DISABLED};
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment