diff -ruN a/storage/innobase/buf/buf0lru.c b/storage/innobase/buf/buf0lru.c
--- a/storage/innobase/buf/buf0lru.c 2010-12-03 15:49:59.185023424 +0900
+++ b/storage/innobase/buf/buf0lru.c 2010-12-04 15:33:37.626482350 +0900
-@@ -2258,6 +2258,284 @@
+@@ -2247,6 +2247,284 @@
memset(&buf_LRU_stat_cur, 0, sizeof buf_LRU_stat_cur);
}
diff -ruN a/storage/innobase/fil/fil0fil.c b/storage/innobase/fil/fil0fil.c
--- a/storage/innobase/fil/fil0fil.c 2010-12-03 17:49:11.581025127 +0900
+++ b/storage/innobase/fil/fil0fil.c 2010-12-04 15:33:37.632482885 +0900
-@@ -4967,6 +4967,70 @@
+@@ -5289,6 +5289,70 @@
return(DB_SUCCESS);
}
diff -ruN a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc
--- a/storage/innobase/handler/ha_innodb.cc 2010-12-03 17:49:11.589956135 +0900
+++ b/storage/innobase/handler/ha_innodb.cc 2010-12-04 15:33:37.645555490 +0900
-@@ -11706,6 +11706,12 @@
+@@ -11793,6 +11793,12 @@
"Limit the allocated memory for dictionary cache. (0: unlimited)",
NULL, NULL, 0, 0, LONG_MAX, 0);
-+static MYSQL_SYSVAR_UINT(auto_lru_dump, srv_auto_lru_dump,
++static MYSQL_SYSVAR_UINT(buffer_pool_restore_at_startup, srv_auto_lru_dump,
+ PLUGIN_VAR_RQCMDARG,
+ "Time in seconds between automatic buffer pool dumps. "
+ "0 (the default) disables automatic dumps.",
static struct st_mysql_sys_var* innobase_system_variables[]= {
MYSQL_SYSVAR(additional_mem_pool_size),
MYSQL_SYSVAR(autoextend_increment),
-@@ -11788,6 +11794,7 @@
+@@ -11874,6 +11880,7 @@
#endif /* UNIV_DEBUG || UNIV_IBUF_DEBUG */
MYSQL_SYSVAR(read_ahead_threshold),
MYSQL_SYSVAR(io_capacity),
-+ MYSQL_SYSVAR(auto_lru_dump),
++ MYSQL_SYSVAR(buffer_pool_restore_at_startup),
MYSQL_SYSVAR(purge_threads),
MYSQL_SYSVAR(purge_batch_size),
- NULL
+ MYSQL_SYSVAR(rollback_segments),
diff -ruN a/storage/innobase/handler/i_s.cc b/storage/innobase/handler/i_s.cc
--- a/storage/innobase/handler/i_s.cc 2010-12-03 17:34:35.286211349 +0900
+++ b/storage/innobase/handler/i_s.cc 2010-12-04 15:33:37.677480733 +0900
+#include "buf0lru.h" /* for XTRA_LRU_[DUMP/RESTORE] */
}
- static const char plugin_author[] = "Innobase Oy";
-@@ -4254,6 +4255,36 @@
+ #define OK(expr) \
+@@ -4270,6 +4271,36 @@
"Hello!");
goto end_func;
}
diff -ruN a/storage/innobase/include/buf0lru.h b/storage/innobase/include/buf0lru.h
--- a/storage/innobase/include/buf0lru.h 2010-12-03 15:49:59.223956070 +0900
+++ b/storage/innobase/include/buf0lru.h 2010-12-04 15:33:37.681481467 +0900
-@@ -219,6 +219,18 @@
+@@ -215,6 +215,18 @@
void
buf_LRU_stat_update(void);
/*=====================*/
/** Status variables to be passed to MySQL */
typedef struct export_var_struct export_struc;
-@@ -663,6 +666,16 @@
+@@ -661,6 +664,16 @@
/*=====================*/
void* arg); /*!< in: a dummy parameter required by
os_thread_create */
diff -ruN a/storage/innobase/srv/srv0srv.c b/storage/innobase/srv/srv0srv.c
--- a/storage/innobase/srv/srv0srv.c 2010-12-03 17:49:11.620986661 +0900
+++ b/storage/innobase/srv/srv0srv.c 2010-12-04 15:33:37.708550811 +0900
-@@ -329,6 +329,9 @@
+@@ -330,6 +330,9 @@
reading of a disk page */
UNIV_INTERN ulint srv_buf_pool_reads = 0;
/* structure to pass status variables to MySQL */
UNIV_INTERN export_struc export_vars;
-@@ -2697,6 +2700,56 @@
+@@ -2701,6 +2704,56 @@
/* We count the number of threads in os_thread_exit(). A created
thread should always use that to exit and not use return() to exit. */
diff -ruN a/storage/innobase/srv/srv0start.c b/storage/innobase/srv/srv0start.c
--- a/storage/innobase/srv/srv0start.c 2010-12-03 15:18:48.916955609 +0900
+++ b/storage/innobase/srv/srv0start.c 2010-12-04 15:33:37.711484798 +0900
-@@ -121,9 +121,9 @@
+@@ -120,9 +120,9 @@
static os_file_t files[1000];
/** io_handler_thread parameters for thread identification */
/** We use this mutex to test the return value of pthread_mutex_trylock
on successful locking. HP-UX does NOT return 0, though Linux et al do. */
-@@ -1813,6 +1813,10 @@
+@@ -1821,6 +1821,10 @@
os_thread_create(&srv_monitor_thread, NULL,
thread_ids + 4 + SRV_MAX_N_IO_THREADS);