packages (MYSQL_5_0): mysql/mysql-innodb_dict_size_limit.patch, mysql/mysql...

glen glen at pld-linux.org
Wed Aug 26 12:17:08 CEST 2009


Author: glen                         Date: Wed Aug 26 10:17:08 2009 GMT
Module: packages                      Tag: MYSQL_5_0
---- Log message:
- update percona patches, automate that process

---- Files affected:
packages/mysql:
   mysql-innodb_dict_size_limit.patch (1.1 -> 1.1.2.1) , mysql-innodb_extra_rseg.patch (1.1 -> 1.1.2.1) , mysql-innodb_fsync_source.patch (1.1.2.1 -> 1.1.2.2) , mysql-innodb_io_patches.patch (1.1.2.4 -> 1.1.2.5) , mysql-innodb_io_pattern.patch (1.1.2.3 -> 1.1.2.4) , mysql-innodb_locks_held.patch (1.1.2.4 -> 1.1.2.5) , mysql-innodb_rw_lock.patch (1.1.2.3 -> 1.1.2.4) , mysql-innodb_show_bp.patch (1.1.2.1 -> 1.1.2.2) , mysql-innodb_thread_concurrency_timer_based.patch (1.1 -> 1.1.2.1) , mysql-microslow_innodb.patch (1.1.2.10 -> 1.1.2.11) , mysql-profiling_slow.patch (1.1 -> 1.1.2.1) , mysql-userstatv2.patch (1.1.2.10 -> 1.1.2.11) , mysql.spec (1.353.2.75 -> 1.353.2.76) , percona.sh (1.1 -> 1.2) , mysql-innodb_recovery_patches.patch (NONE -> 1.1.2.1)  (NEW), mysql-innodb_split_buf_pool_mutex.patch (NONE -> 1.1.2.1)  (NEW), mysql-innodb_use_sys_malloc.patch (NONE -> 1.1.2.1)  (NEW)

---- Diffs:

================================================================
Index: packages/mysql/mysql-innodb_dict_size_limit.patch
diff -u packages/mysql/mysql-innodb_dict_size_limit.patch:1.1 packages/mysql/mysql-innodb_dict_size_limit.patch:1.1.2.1
--- packages/mysql/mysql-innodb_dict_size_limit.patch:1.1	Thu Jul 16 15:01:55 2009
+++ packages/mysql/mysql-innodb_dict_size_limit.patch	Wed Aug 26 12:17:02 2009
@@ -1,6 +1,6 @@
-diff -ru mysql-5.0.75_base/innobase/dict/dict0boot.c mysql-5.0.75/innobase/dict/dict0boot.c
---- mysql-5.0.75_base/innobase/dict/dict0boot.c	2008-12-19 02:19:35.000000000 +0900
-+++ mysql-5.0.75/innobase/dict/dict0boot.c	2009-01-23 19:28:25.000000000 +0900
+diff -r 6eeee157fd40 innobase/dict/dict0boot.c
+--- a/innobase/dict/dict0boot.c	Fri Jul 03 15:41:34 2009 -0700
++++ b/innobase/dict/dict0boot.c	Fri Jul 03 15:41:41 2009 -0700
 @@ -247,6 +247,7 @@
  	system tables */
  	/*-------------------------*/
@@ -33,9 +33,9 @@
  
  	dict_mem_table_add_col(table, "INDEX_ID", DATA_BINARY, 0,0,0);
  	dict_mem_table_add_col(table, "POS", DATA_INT, 0, 4, 0);
-diff -ru mysql-5.0.75_base/innobase/dict/dict0crea.c mysql-5.0.75/innobase/dict/dict0crea.c
---- mysql-5.0.75_base/innobase/dict/dict0crea.c	2008-12-19 02:19:35.000000000 +0900
-+++ mysql-5.0.75/innobase/dict/dict0crea.c	2009-01-23 19:41:38.000000000 +0900
+diff -r 6eeee157fd40 innobase/dict/dict0crea.c
+--- a/innobase/dict/dict0crea.c	Fri Jul 03 15:41:34 2009 -0700
++++ b/innobase/dict/dict0crea.c	Fri Jul 03 15:41:41 2009 -0700
 @@ -1178,6 +1178,9 @@
              	/* Foreign constraint system tables have already been
              	created, and they are ok */
@@ -47,20 +47,20 @@
  
              	return(DB_SUCCESS);
 @@ -1266,6 +1269,11 @@
+ 	que_graph_free(graph);
  	
  	trx->op_info = "";
- 
++
 +	table1 = dict_table_get_low("SYS_FOREIGN");
 +	table2 = dict_table_get_low("SYS_FOREIGN_COLS");
 +	table1->n_mysql_handles_opened = 1; /* for pin */
 +	table2->n_mysql_handles_opened = 1; /* for pin */
-+
+ 
  	row_mysql_unlock_data_dictionary(trx);
  
-   	trx_free_for_mysql(trx);
-diff -ru mysql-5.0.75_base/innobase/dict/dict0dict.c mysql-5.0.75/innobase/dict/dict0dict.c
---- mysql-5.0.75_base/innobase/dict/dict0dict.c	2008-12-19 02:19:35.000000000 +0900
-+++ mysql-5.0.75/innobase/dict/dict0dict.c	2009-01-26 16:03:29.000000000 +0900
+diff -r 6eeee157fd40 innobase/dict/dict0dict.c
+--- a/innobase/dict/dict0dict.c	Fri Jul 03 15:41:34 2009 -0700
++++ b/innobase/dict/dict0dict.c	Fri Jul 03 15:41:41 2009 -0700
 @@ -638,6 +638,8 @@
  	mutex_enter(&(dict_sys->mutex));
  
@@ -79,15 +79,15 @@
  	mutex_exit(&(dict_sys->mutex));
  
  	if (table != NULL) {
-@@ -787,6 +791,8 @@
+@@ -786,6 +790,8 @@
+ 
  	        table->n_mysql_handles_opened++;
  	}
- 
-+	dict_table_LRU_trim(table);
 +
++	dict_table_LRU_trim(table);
+ 
  	mutex_exit(&(dict_sys->mutex));
  
- 	if (table != NULL) {
 @@ -1267,20 +1273,64 @@
  too much space. Currently not used! */
  
@@ -100,18 +100,24 @@
  {
  	dict_table_t*	table;
  	dict_table_t*	prev_table;
+-
+-	ut_error;
+-
+-#ifdef UNIV_SYNC_DEBUG
+-	ut_ad(mutex_own(&(dict_sys->mutex)));
+-#endif /* UNIV_SYNC_DEBUG */
+-
 +	dict_foreign_t*	foreign;
 +	ulint		n_removed;
 +	ulint		n_have_parent;
 +	ulint		cached_foreign_tables;
- 
--	ut_error;
++
 +	//ut_error;
- 
- #ifdef UNIV_SYNC_DEBUG
- 	ut_ad(mutex_own(&(dict_sys->mutex)));
- #endif /* UNIV_SYNC_DEBUG */
- 
++
++#ifdef UNIV_SYNC_DEBUG
++	ut_ad(mutex_own(&(dict_sys->mutex)));
++#endif /* UNIV_SYNC_DEBUG */
++
 +retry:
 +	n_removed = n_have_parent = 0;
  	table = UT_LIST_GET_LAST(dict_sys->table_LRU);
@@ -156,7 +162,7 @@
  	while (table && (dict_sys->size >
  			 buf_pool_get_max_size() / DICT_POOL_PER_VARYING)) {
  
-@@ -1292,6 +1341,7 @@
+@@ -1292,6 +1342,7 @@
  
  		table = prev_table;
  	}
@@ -164,9 +170,9 @@
  }
  
  /**************************************************************************
-diff -ru mysql-5.0.75_base/innobase/ibuf/ibuf0ibuf.c mysql-5.0.75/innobase/ibuf/ibuf0ibuf.c
---- mysql-5.0.75_base/innobase/ibuf/ibuf0ibuf.c	2009-01-23 11:44:18.000000000 +0900
-+++ mysql-5.0.75/innobase/ibuf/ibuf0ibuf.c	2009-01-23 19:22:54.000000000 +0900
+diff -r 6eeee157fd40 innobase/ibuf/ibuf0ibuf.c
+--- a/innobase/ibuf/ibuf0ibuf.c	Fri Jul 03 15:41:34 2009 -0700
++++ b/innobase/ibuf/ibuf0ibuf.c	Fri Jul 03 15:41:41 2009 -0700
 @@ -535,6 +535,7 @@
  	sprintf(buf, "SYS_IBUF_TABLE_%lu", (ulong) space);
  	/* use old-style record format for the insert buffer */
@@ -175,9 +181,9 @@
  
  	dict_mem_table_add_col(table, "PAGE_NO", DATA_BINARY, 0, 0, 0);
  	dict_mem_table_add_col(table, "TYPES", DATA_BINARY, 0, 0, 0);
-diff -ru mysql-5.0.75_base/innobase/include/dict0dict.h mysql-5.0.75/innobase/include/dict0dict.h
---- mysql-5.0.75_base/innobase/include/dict0dict.h	2008-12-19 02:19:35.000000000 +0900
-+++ mysql-5.0.75/innobase/include/dict0dict.h	2009-01-23 21:46:22.000000000 +0900
+diff -r 6eeee157fd40 innobase/include/dict0dict.h
+--- a/innobase/include/dict0dict.h	Fri Jul 03 15:41:34 2009 -0700
++++ b/innobase/include/dict0dict.h	Fri Jul 03 15:41:41 2009 -0700
 @@ -938,6 +938,11 @@
  	const char*	ptr,	/* in: scan from */
  	const char*	string);/* in: look for this */
@@ -190,9 +196,9 @@
  /* Buffers for storing detailed information about the latest foreign key
  and unique key errors */
  extern FILE*	dict_foreign_err_file;
-diff -ru mysql-5.0.75_base/innobase/include/dict0dict.ic mysql-5.0.75/innobase/include/dict0dict.ic
---- mysql-5.0.75_base/innobase/include/dict0dict.ic	2008-12-19 02:19:35.000000000 +0900
-+++ mysql-5.0.75/innobase/include/dict0dict.ic	2009-01-23 18:35:55.000000000 +0900
+diff -r 6eeee157fd40 innobase/include/dict0dict.ic
+--- a/innobase/include/dict0dict.ic	Fri Jul 03 15:41:34 2009 -0700
++++ b/innobase/include/dict0dict.ic	Fri Jul 03 15:41:41 2009 -0700
 @@ -533,6 +533,13 @@
  
  	HASH_SEARCH(name_hash, dict_sys->table_hash, table_fold, table,
@@ -218,19 +224,19 @@
  		/* lock_push(trx, table, LOCK_DICT_MEM_FIX) */
  	}
  	
-diff -ru mysql-5.0.75_base/innobase/include/srv0srv.h mysql-5.0.75/innobase/include/srv0srv.h
---- mysql-5.0.75_base/innobase/include/srv0srv.h	2009-01-23 11:44:19.000000000 +0900
-+++ mysql-5.0.75/innobase/include/srv0srv.h	2009-01-27 10:47:26.000000000 +0900
+diff -r 6eeee157fd40 innobase/include/srv0srv.h
+--- a/innobase/include/srv0srv.h	Fri Jul 03 15:41:34 2009 -0700
++++ b/innobase/include/srv0srv.h	Fri Jul 03 15:41:41 2009 -0700
 @@ -146,6 +146,8 @@
+ extern ulint	srv_enable_unsafe_group_commit;
  extern uint	srv_read_ahead;
- extern ulint	srv_adaptive_checkpoint;
- 
-+extern ulint	srv_dict_size_limit;
+ extern uint	srv_adaptive_checkpoint;
 +
++extern ulint	srv_dict_size_limit;
+ 
  extern volatile ibool srv_io_pattern;
  extern ulong	srv_io_pattern_trace;
- extern ulong	srv_io_pattern_trace_running;
-@@ -545,6 +547,7 @@
+@@ -552,6 +554,7 @@
          ulint innodb_data_writes;
          ulint innodb_data_written;
          ulint innodb_data_reads;
@@ -238,19 +244,19 @@
          ulint innodb_buffer_pool_pages_total;
          ulint innodb_buffer_pool_pages_data;
          ulint innodb_buffer_pool_pages_dirty;
-diff -ru mysql-5.0.75_base/innobase/srv/srv0srv.c mysql-5.0.75/innobase/srv/srv0srv.c
---- mysql-5.0.75_base/innobase/srv/srv0srv.c	2009-01-23 11:44:19.000000000 +0900
-+++ mysql-5.0.75/innobase/srv/srv0srv.c	2009-01-27 10:52:19.000000000 +0900
-@@ -345,6 +345,8 @@
- uint	srv_read_ahead = 3; /* 1: random  2: linear  3: Both */
- ulint	srv_adaptive_checkpoint = 0; /* 0:disable 1:enable */
+diff -r 6eeee157fd40 innobase/srv/srv0srv.c
+--- a/innobase/srv/srv0srv.c	Fri Jul 03 15:41:34 2009 -0700
++++ b/innobase/srv/srv0srv.c	Fri Jul 03 15:41:41 2009 -0700
+@@ -352,6 +352,8 @@
  
-+ulint	srv_dict_size_limit = 0;
+ uint	srv_read_ahead = 3; /* 1: random  2: linear  3: Both */
+ uint	srv_adaptive_checkpoint = 0; /* 0: none  1: reflex  2: estimate */
 +
++ulint	srv_dict_size_limit = 0;
+ 
  volatile ibool srv_io_pattern = FALSE;
  ulint   srv_io_pattern_trace = 0;
- ulint   srv_io_pattern_trace_running = 0;
-@@ -1936,6 +1938,7 @@
+@@ -1953,6 +1955,7 @@
          export_vars.innodb_data_reads= os_n_file_reads;
          export_vars.innodb_data_writes= os_n_file_writes;
          export_vars.innodb_data_written= srv_data_written;
@@ -258,82 +264,9 @@
          export_vars.innodb_buffer_pool_read_requests= buf_pool->n_page_gets;
          export_vars.innodb_buffer_pool_write_requests= srv_buf_pool_write_requests;
          export_vars.innodb_buffer_pool_wait_free= srv_buf_pool_wait_free;
-diff -ru mysql-5.0.75_base/sql/ha_innodb.cc mysql-5.0.75/sql/ha_innodb.cc
---- mysql-5.0.75_base/sql/ha_innodb.cc	2009-01-23 11:44:19.000000000 +0900
-+++ mysql-5.0.75/sql/ha_innodb.cc	2009-01-27 10:54:08.000000000 +0900
-@@ -288,6 +288,8 @@
-   (char*) &export_vars.innodb_dblwr_pages_written,        SHOW_LONG},
-   {"dblwr_writes",
-   (char*) &export_vars.innodb_dblwr_writes,               SHOW_LONG},
-+  {"dict_tables",
-+  (char*) &export_vars.innodb_dict_tables,                SHOW_LONG},
-   {"log_waits",
-   (char*) &export_vars.innodb_log_waits,                  SHOW_LONG},
-   {"log_write_requests",
-diff -ru mysql-5.0.75_base/sql/ha_innodb.h mysql-5.0.75/sql/ha_innodb.h
---- mysql-5.0.75_base/sql/ha_innodb.h	2009-01-23 11:44:19.000000000 +0900
-+++ mysql-5.0.75/sql/ha_innodb.h	2009-01-26 15:49:37.000000000 +0900
-@@ -242,6 +242,7 @@
- extern ulong srv_flush_neighbor_pages;
- extern uint srv_read_ahead;
- extern ulong srv_adaptive_checkpoint;
-+extern ulong srv_dict_size_limit;
- extern ulong srv_show_locks_held;
- extern ulong srv_show_verbose_locks;
- extern ulong srv_io_pattern_trace;
-diff -ru mysql-5.0.75_base/sql/mysqld.cc mysql-5.0.75/sql/mysqld.cc
---- mysql-5.0.75_base/sql/mysqld.cc	2009-01-23 11:44:19.000000000 +0900
-+++ mysql-5.0.75/sql/mysqld.cc	2009-01-26 15:29:45.000000000 +0900
-@@ -5053,6 +5053,7 @@
-   OPT_INNODB_ADAPTIVE_CHECKPOINT,
-   OPT_INNODB_READ_IO_THREADS,
-   OPT_INNODB_WRITE_IO_THREADS,
-+  OPT_INNODB_DICT_SIZE_LIMIT,
-   OPT_INNODB_ADAPTIVE_HASH_INDEX,
-   OPT_RPL_MIRROR_BINLOG,
-   OPT_SYNC_MIRROR_BINLOG,
-@@ -5406,6 +5407,10 @@
-    "Number of background write I/O threads in InnoDB.",
-    (gptr*) &innobase_write_io_threads, (gptr*) &innobase_write_io_threads,
-    0, GET_LONG, REQUIRED_ARG, 1, 1, 64, 0, 0, 0},
-+  {"innodb_dict_size_limit", OPT_INNODB_DICT_SIZE_LIMIT,
-+   "Limit the allocated memory for dictionary cache. (0: unlimited)",
-+   (gptr*) &srv_dict_size_limit, (gptr*) &srv_dict_size_limit, 0,
-+   GET_ULONG, REQUIRED_ARG, 0, 0, ULONG_MAX, 0, 0 ,0},
-   {"innodb_io_pattern_trace", OPT_INNODB_IO_PATTERN_TRACE,
-    "Create/Drop the internal hash table for IO pattern tracing.",
-    (gptr*) &srv_io_pattern_trace, (gptr*) &srv_io_pattern_trace,
-diff -ru mysql-5.0.75_base/sql/set_var.cc mysql-5.0.75/sql/set_var.cc
---- mysql-5.0.75_base/sql/set_var.cc	2009-01-23 11:44:19.000000000 +0900
-+++ mysql-5.0.75/sql/set_var.cc	2009-01-26 15:46:45.000000000 +0900
-@@ -522,6 +522,8 @@
-                                       &innodb_read_ahead_typelib, fix_innodb_read_ahead);
- sys_var_long_ptr	sys_innodb_adaptive_checkpoint("innodb_adaptive_checkpoint",
-                                                       &srv_adaptive_checkpoint);
-+sys_var_long_ptr	sys_innodb_dict_size_limit("innodb_dict_size_limit",
-+                                                   &srv_dict_size_limit);
- sys_var_long_ptr  sys_innodb_show_locks_held(
-                                         "innodb_show_locks_held",
-                                         &srv_show_locks_held);
-@@ -905,6 +907,7 @@
-   &sys_innodb_flush_neighbor_pages,
-   &sys_innodb_read_ahead,
-   &sys_innodb_adaptive_checkpoint,
-+  &sys_innodb_dict_size_limit,
-   &sys_innodb_show_locks_held,
-   &sys_innodb_show_verbose_locks,
-   &sys_innodb_io_pattern_trace,
-@@ -1056,6 +1059,7 @@
-   {sys_innodb_adaptive_checkpoint.name, (char*) &sys_innodb_adaptive_checkpoint, SHOW_SYS},
-   {"innodb_read_io_threads", (char*) &innobase_read_io_threads, SHOW_LONG},
-   {"innodb_write_io_threads", (char*) &innobase_write_io_threads, SHOW_LONG},
-+  {sys_innodb_dict_size_limit.name, (char*) &sys_innodb_dict_size_limit, SHOW_SYS},
-   {sys_innodb_io_pattern_trace.name, (char*) &sys_innodb_io_pattern_trace, SHOW_SYS},
-   {sys_innodb_io_pattern_trace_running.name, (char*) &sys_innodb_io_pattern_trace_running, SHOW_SYS},
-   {sys_innodb_io_pattern_size_limit.name, (char*) &sys_innodb_io_pattern_size_limit, SHOW_SYS},
-diff -ruN mysql-5.0.75_base/mysql-test/r/innodb_dict_size_limit.result mysql-5.0.75/mysql-test/r/innodb_dict_size_limit.result
---- /dev/null	1970-01-01 09:00:00.000000000 +0900
-+++ mysql-5.0.75/mysql-test/r/innodb_dict_size_limit.result	2009-01-27 11:43:46.000000000 +0900
+diff -r 6eeee157fd40 mysql-test/r/innodb_dict_size_limit.result
+--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
++++ b/mysql-test/r/innodb_dict_size_limit.result	Fri Jul 03 15:41:41 2009 -0700
 @@ -0,0 +1,60 @@
 +DROP TABLE IF EXISTS `test_5`;
 +DROP TABLE IF EXISTS `test_4`;
@@ -395,9 +328,9 @@
 +DROP TABLE `test_3`;
 +DROP TABLE `test_2`;
 +DROP TABLE `test_1`;
-diff -ruN mysql-5.0.75_base/mysql-test/t/innodb_dict_size_limit.test mysql-5.0.75/mysql-test/t/innodb_dict_size_limit.test
---- /dev/null	1970-01-01 09:00:00.000000000 +0900
-+++ mysql-5.0.75/mysql-test/t/innodb_dict_size_limit.test	2009-01-27 11:43:36.000000000 +0900
+diff -r 6eeee157fd40 mysql-test/t/innodb_dict_size_limit.test
+--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
++++ b/mysql-test/t/innodb_dict_size_limit.test	Fri Jul 03 15:41:41 2009 -0700
 @@ -0,0 +1,63 @@
 +#
 +# Test for new variable innodb_dict_size_limit;
@@ -462,9 +395,9 @@
 +DROP TABLE `test_2`;
 +DROP TABLE `test_1`;
 +
-diff -ruN mysql-5.0.75_base/patch_info/innodb_dict_size_limit.info mysql-5.0.75/patch_info/innodb_dict_size_limit.info
---- /dev/null	1970-01-01 09:00:00.000000000 +0900
-+++ mysql-5.0.75/patch_info/innodb_dict_size_limit.info	2009-01-26 15:46:45.000000000 +0900
+diff -r 6eeee157fd40 patch_info/innodb_dict_size_limit.info
+--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
++++ b/patch_info/innodb_dict_size_limit.info	Fri Jul 03 15:41:41 2009 -0700
 @@ -0,0 +1,9 @@
 +File=innodb_dict_size_limit.patch
 +Name=Limit dictionary cache size
@@ -475,3 +408,76 @@
 +ChangeLog=
 +2009-01-26
 +YK: Initial release
+diff -r 6eeee157fd40 sql/ha_innodb.cc
+--- a/sql/ha_innodb.cc	Fri Jul 03 15:41:34 2009 -0700
++++ b/sql/ha_innodb.cc	Fri Jul 03 15:41:41 2009 -0700
+@@ -288,6 +288,8 @@
+   (char*) &export_vars.innodb_dblwr_pages_written,        SHOW_LONG},
+   {"dblwr_writes",
+   (char*) &export_vars.innodb_dblwr_writes,               SHOW_LONG},
++  {"dict_tables",
++  (char*) &export_vars.innodb_dict_tables,                SHOW_LONG},
+   {"log_waits",
+   (char*) &export_vars.innodb_log_waits,                  SHOW_LONG},
+   {"log_write_requests",
+diff -r 6eeee157fd40 sql/ha_innodb.h
+--- a/sql/ha_innodb.h	Fri Jul 03 15:41:34 2009 -0700
++++ b/sql/ha_innodb.h	Fri Jul 03 15:41:41 2009 -0700
+@@ -243,6 +243,7 @@
+ extern ulong srv_enable_unsafe_group_commit;
+ extern uint srv_read_ahead;
+ extern uint srv_adaptive_checkpoint;
++extern ulong srv_dict_size_limit;
+ extern ulong srv_show_locks_held;
+ extern ulong srv_show_verbose_locks;
+ extern ulong srv_io_pattern_trace;
+diff -r 6eeee157fd40 sql/mysqld.cc
+--- a/sql/mysqld.cc	Fri Jul 03 15:41:34 2009 -0700
++++ b/sql/mysqld.cc	Fri Jul 03 15:41:41 2009 -0700
+@@ -5101,6 +5101,7 @@
+   OPT_INNODB_ADAPTIVE_CHECKPOINT,
+   OPT_INNODB_READ_IO_THREADS,
+   OPT_INNODB_WRITE_IO_THREADS,
++  OPT_INNODB_DICT_SIZE_LIMIT,
+   OPT_INNODB_ADAPTIVE_HASH_INDEX,
+   OPT_FEDERATED,
+   OPT_INNODB_USE_LEGACY_CARDINALITY_ALGORITHM
+@@ -5464,6 +5465,10 @@
+    "Number of background write I/O threads in InnoDB.",
+    (gptr*) &innobase_write_io_threads, (gptr*) &innobase_write_io_threads,
+    0, GET_LONG, REQUIRED_ARG, 8, 1, 64, 0, 0, 0},
++  {"innodb_dict_size_limit", OPT_INNODB_DICT_SIZE_LIMIT,
++   "Limit the allocated memory for dictionary cache. (0: unlimited)",
++   (gptr*) &srv_dict_size_limit, (gptr*) &srv_dict_size_limit, 0,
++   GET_ULONG, REQUIRED_ARG, 0, 0, ULONG_MAX, 0, 0 ,0},
+   {"innodb_io_pattern_trace", OPT_INNODB_IO_PATTERN_TRACE,
+    "Create/Drop the internal hash table for IO pattern tracing.",
+    (gptr*) &srv_io_pattern_trace, (gptr*) &srv_io_pattern_trace,
+diff -r 6eeee157fd40 sql/set_var.cc
+--- a/sql/set_var.cc	Fri Jul 03 15:41:34 2009 -0700
++++ b/sql/set_var.cc	Fri Jul 03 15:41:41 2009 -0700
+@@ -540,6 +540,8 @@
+ sys_var_enum	sys_innodb_adaptive_checkpoint("innodb_adaptive_checkpoint",
+                            &srv_adaptive_checkpoint,
+                            &innodb_adaptive_checkpoint_typelib, fix_innodb_adaptive_checkpoint);
++sys_var_long_ptr	sys_innodb_dict_size_limit("innodb_dict_size_limit",
++                                                   &srv_dict_size_limit);
+ sys_var_long_ptr  sys_innodb_show_locks_held(
+                                         "innodb_show_locks_held",
+                                         &srv_show_locks_held);
+@@ -930,6 +932,7 @@
+   &sys_innodb_read_ahead,
+   &sys_innodb_enable_unsafe_group_commit,
+   &sys_innodb_adaptive_checkpoint,
++  &sys_innodb_dict_size_limit,
+   &sys_innodb_show_locks_held,
+   &sys_innodb_show_verbose_locks,
+   &sys_innodb_io_pattern_trace,
+@@ -1084,6 +1087,7 @@
+   {sys_innodb_adaptive_checkpoint.name, (char*) &sys_innodb_adaptive_checkpoint, SHOW_SYS},
+   {"innodb_read_io_threads", (char*) &innobase_read_io_threads, SHOW_LONG},
+   {"innodb_write_io_threads", (char*) &innobase_write_io_threads, SHOW_LONG},
++  {sys_innodb_dict_size_limit.name, (char*) &sys_innodb_dict_size_limit, SHOW_SYS},
+   {sys_innodb_io_pattern_trace.name, (char*) &sys_innodb_io_pattern_trace, SHOW_SYS},
+   {sys_innodb_io_pattern_trace_running.name, (char*) &sys_innodb_io_pattern_trace_running, SHOW_SYS},
+   {sys_innodb_io_pattern_size_limit.name, (char*) &sys_innodb_io_pattern_size_limit, SHOW_SYS},

================================================================
Index: packages/mysql/mysql-innodb_extra_rseg.patch
diff -u packages/mysql/mysql-innodb_extra_rseg.patch:1.1 packages/mysql/mysql-innodb_extra_rseg.patch:1.1.2.1
--- packages/mysql/mysql-innodb_extra_rseg.patch:1.1	Thu Jul 16 15:01:55 2009
+++ packages/mysql/mysql-innodb_extra_rseg.patch	Wed Aug 26 12:17:02 2009
@@ -1,18 +1,18 @@
-diff -ruN a/innobase/include/srv0srv.h b/innobase/include/srv0srv.h
---- a/innobase/include/srv0srv.h	2009-05-06 15:35:46.000000000 +0900
-+++ b/innobase/include/srv0srv.h	2009-05-06 13:37:45.000000000 +0900
-@@ -147,6 +147,8 @@
+diff -r 85e7025cf2d1 innobase/include/srv0srv.h
+--- a/innobase/include/srv0srv.h	Fri Jul 03 15:41:41 2009 -0700
++++ b/innobase/include/srv0srv.h	Fri Jul 03 15:41:47 2009 -0700
+@@ -146,6 +146,8 @@
+ extern ulint	srv_enable_unsafe_group_commit;
  extern uint	srv_read_ahead;
- extern ulint	srv_adaptive_checkpoint;
- 
-+extern ulint	srv_extra_rsegments;
+ extern uint	srv_adaptive_checkpoint;
 +
++extern ulint	srv_extra_rsegments;
+ 
  extern ulint	srv_dict_size_limit;
  
- extern volatile ibool srv_io_pattern;
-diff -ruN a/innobase/include/trx0sys.h b/innobase/include/trx0sys.h
---- a/innobase/include/trx0sys.h	2009-05-06 15:35:46.000000000 +0900
-+++ b/innobase/include/trx0sys.h	2009-05-06 14:52:00.000000000 +0900
+diff -r 85e7025cf2d1 innobase/include/trx0sys.h
+--- a/innobase/include/trx0sys.h	Fri Jul 03 15:41:41 2009 -0700
++++ b/innobase/include/trx0sys.h	Fri Jul 03 15:41:47 2009 -0700
 @@ -105,6 +105,13 @@
  void
  trx_sys_create(void);
@@ -27,21 +27,21 @@
  /********************************************************************
  Looks for a free slot for a rollback segment in the trx system file copy. */
  
-diff -ruN a/innobase/srv/srv0srv.c b/innobase/srv/srv0srv.c
---- a/innobase/srv/srv0srv.c	2009-05-06 15:35:46.000000000 +0900
-+++ b/innobase/srv/srv0srv.c	2009-05-06 13:38:23.000000000 +0900
-@@ -347,6 +347,8 @@
- uint	srv_read_ahead = 3; /* 1: random  2: linear  3: Both */
- ulint	srv_adaptive_checkpoint = 0; /* 0:disable 1:enable */
+diff -r 85e7025cf2d1 innobase/srv/srv0srv.c
+--- a/innobase/srv/srv0srv.c	Fri Jul 03 15:41:41 2009 -0700
++++ b/innobase/srv/srv0srv.c	Fri Jul 03 15:41:47 2009 -0700
+@@ -352,6 +352,8 @@
  
-+ulint	srv_extra_rsegments = 0; /* extra rseg for users */
+ uint	srv_read_ahead = 3; /* 1: random  2: linear  3: Both */
+ uint	srv_adaptive_checkpoint = 0; /* 0: none  1: reflex  2: estimate */
 +
++ulint	srv_extra_rsegments = 0; /* extra rseg for users */
+ 
  ulint	srv_dict_size_limit = 0;
  
- volatile ibool srv_io_pattern = FALSE;
-diff -ruN a/innobase/srv/srv0start.c b/innobase/srv/srv0start.c
---- a/innobase/srv/srv0start.c	2009-05-06 15:35:46.000000000 +0900
-+++ b/innobase/srv/srv0start.c	2009-05-06 14:54:43.000000000 +0900
+diff -r 85e7025cf2d1 innobase/srv/srv0start.c
+--- a/innobase/srv/srv0start.c	Fri Jul 03 15:41:41 2009 -0700
++++ b/innobase/srv/srv0start.c	Fri Jul 03 15:41:47 2009 -0700
 @@ -1418,6 +1418,8 @@
  		dict_create();
                  srv_startup_is_before_trx_rollback_phase = FALSE;
@@ -51,9 +51,9 @@
  #ifdef UNIV_LOG_ARCHIVE
  	} else if (srv_archive_recovery) {
  		fprintf(stderr,
-diff -ruN a/innobase/trx/trx0sys.c b/innobase/trx/trx0sys.c
---- a/innobase/trx/trx0sys.c	2009-05-06 15:35:46.000000000 +0900
-+++ b/innobase/trx/trx0sys.c	2009-05-06 14:54:02.000000000 +0900
+diff -r 85e7025cf2d1 innobase/trx/trx0sys.c
+--- a/innobase/trx/trx0sys.c	Fri Jul 03 15:41:41 2009 -0700
++++ b/innobase/trx/trx0sys.c	Fri Jul 03 15:41:47 2009 -0700
 @@ -944,3 +944,28 @@
  
  	trx_sys_init_at_db_start();
@@ -83,9 +83,9 @@
 +	}
 +	mtr_commit(&mtr);
 +}
-diff -ruN a/patch_info/innodb_extra_rseg.info b/patch_info/innodb_extra_rseg.info
---- /dev/null	1970-01-01 09:00:00.000000000 +0900
-+++ b/patch_info/innodb_extra_rseg.info	2009-05-06 14:49:48.000000000 +0900
+diff -r 85e7025cf2d1 patch_info/innodb_extra_rseg.info
+--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
++++ b/patch_info/innodb_extra_rseg.info	Fri Jul 03 15:41:47 2009 -0700
 @@ -0,0 +1,6 @@
 +File=innodb_extra_rseg.patch
 +Name=allow to create extra rollback segments
@@ -93,9 +93,9 @@
 +Author=Percona <info at percona.com>
 +License=GPL
 +Comment
-diff -ruN a/sql/ha_innodb.cc b/sql/ha_innodb.cc
---- a/sql/ha_innodb.cc	2009-05-06 15:35:46.000000000 +0900
-+++ b/sql/ha_innodb.cc	2009-05-06 15:27:49.000000000 +0900
+diff -r 85e7025cf2d1 sql/ha_innodb.cc
+--- a/sql/ha_innodb.cc	Fri Jul 03 15:41:41 2009 -0700
++++ b/sql/ha_innodb.cc	Fri Jul 03 15:41:47 2009 -0700
 @@ -152,6 +152,7 @@
       innobase_open_files;
  
@@ -104,7 +104,7 @@
  longlong innobase_buffer_pool_size, innobase_log_file_size;
  
  /* The default values for the following char* start-up parameters
-@@ -1507,6 +1508,8 @@
+@@ -1521,6 +1522,8 @@
  	srv_n_read_io_threads = (ulint) innobase_read_io_threads;
  	srv_n_write_io_threads = (ulint) innobase_write_io_threads;
  
@@ -113,9 +113,9 @@
  	srv_lock_wait_timeout = (ulint) innobase_lock_wait_timeout;
  	srv_force_recovery = (ulint) innobase_force_recovery;
  
-diff -ruN a/sql/ha_innodb.h b/sql/ha_innodb.h
---- a/sql/ha_innodb.h	2009-05-06 15:35:46.000000000 +0900
-+++ b/sql/ha_innodb.h	2009-05-06 13:51:35.000000000 +0900
+diff -r 85e7025cf2d1 sql/ha_innodb.h
+--- a/sql/ha_innodb.h	Fri Jul 03 15:41:41 2009 -0700
++++ b/sql/ha_innodb.h	Fri Jul 03 15:41:47 2009 -0700
 @@ -205,6 +205,7 @@
  extern long innobase_buffer_pool_awe_mem_mb;
  extern long innobase_file_io_threads, innobase_lock_wait_timeout;
@@ -124,21 +124,21 @@
  extern long innobase_force_recovery;
  extern long innobase_open_files;
  extern char *innobase_data_home_dir, *innobase_data_file_path;
-diff -ruN a/sql/mysqld.cc b/sql/mysqld.cc
---- a/sql/mysqld.cc	2009-05-06 15:35:46.000000000 +0900
-+++ b/sql/mysqld.cc	2009-05-06 14:12:05.000000000 +0900
-@@ -5096,6 +5096,7 @@
+diff -r 85e7025cf2d1 sql/mysqld.cc
+--- a/sql/mysqld.cc	Fri Jul 03 15:41:41 2009 -0700
++++ b/sql/mysqld.cc	Fri Jul 03 15:41:47 2009 -0700
+@@ -5101,6 +5101,7 @@
    OPT_INNODB_ADAPTIVE_CHECKPOINT,
    OPT_INNODB_READ_IO_THREADS,
    OPT_INNODB_WRITE_IO_THREADS,
 +  OPT_INNODB_EXTRA_RSEGMENTS,
    OPT_INNODB_DICT_SIZE_LIMIT,
    OPT_INNODB_ADAPTIVE_HASH_INDEX,
-   OPT_RPL_MIRROR_BINLOG,
-@@ -5454,6 +5455,10 @@
+   OPT_FEDERATED,
+@@ -5465,6 +5466,10 @@
     "Number of background write I/O threads in InnoDB.",
     (gptr*) &innobase_write_io_threads, (gptr*) &innobase_write_io_threads,
-    0, GET_LONG, REQUIRED_ARG, 1, 1, 64, 0, 0, 0},
+    0, GET_LONG, REQUIRED_ARG, 8, 1, 64, 0, 0, 0},
 +  {"innodb_extra_rsegments", OPT_INNODB_EXTRA_RSEGMENTS,
 +   "Number of extra user rollback segments when create new database.",
 +   (gptr*) &innobase_extra_rsegments, (gptr*) &innobase_extra_rsegments,
@@ -146,10 +146,10 @@
    {"innodb_dict_size_limit", OPT_INNODB_DICT_SIZE_LIMIT,
     "Limit the allocated memory for dictionary cache. (0: unlimited)",
     (gptr*) &srv_dict_size_limit, (gptr*) &srv_dict_size_limit, 0,
-diff -ruN a/sql/set_var.cc b/sql/set_var.cc
---- a/sql/set_var.cc	2009-05-06 15:35:46.000000000 +0900
-+++ b/sql/set_var.cc	2009-05-06 14:13:24.000000000 +0900
-@@ -1063,6 +1063,7 @@
+diff -r 85e7025cf2d1 sql/set_var.cc
+--- a/sql/set_var.cc	Fri Jul 03 15:41:41 2009 -0700
++++ b/sql/set_var.cc	Fri Jul 03 15:41:47 2009 -0700
+@@ -1087,6 +1087,7 @@
    {sys_innodb_adaptive_checkpoint.name, (char*) &sys_innodb_adaptive_checkpoint, SHOW_SYS},
    {"innodb_read_io_threads", (char*) &innobase_read_io_threads, SHOW_LONG},
    {"innodb_write_io_threads", (char*) &innobase_write_io_threads, SHOW_LONG},
@@ -157,9 +157,9 @@
    {sys_innodb_dict_size_limit.name, (char*) &sys_innodb_dict_size_limit, SHOW_SYS},
    {sys_innodb_io_pattern_trace.name, (char*) &sys_innodb_io_pattern_trace, SHOW_SYS},
    {sys_innodb_io_pattern_trace_running.name, (char*) &sys_innodb_io_pattern_trace_running, SHOW_SYS},
-diff -ruN a/sql/sql_show.cc b/sql/sql_show.cc
---- a/sql/sql_show.cc	2009-05-06 15:35:46.000000000 +0900
-+++ b/sql/sql_show.cc	2009-05-06 15:29:47.000000000 +0900
+diff -r 85e7025cf2d1 sql/sql_show.cc
+--- a/sql/sql_show.cc	Fri Jul 03 15:41:41 2009 -0700
++++ b/sql/sql_show.cc	Fri Jul 03 15:41:47 2009 -0700
 @@ -39,6 +39,8 @@
  #include "srv0srv.h"
  #include "buf0buf.h"
@@ -169,7 +169,7 @@
  }
  /* We need to undef it in InnoDB */
  #undef byte
-@@ -4160,6 +4162,45 @@
+@@ -4180,6 +4182,45 @@
    DBUG_RETURN(returnable);
  }
  
@@ -215,10 +215,12 @@
<<Diff was trimmed, longer than 597 lines>>

---- CVS-web:
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/mysql/mysql-innodb_dict_size_limit.patch?r1=1.1&r2=1.1.2.1&f=u
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/mysql/mysql-innodb_extra_rseg.patch?r1=1.1&r2=1.1.2.1&f=u
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/mysql/mysql-innodb_fsync_source.patch?r1=1.1.2.1&r2=1.1.2.2&f=u
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/mysql/mysql-innodb_io_patches.patch?r1=1.1.2.4&r2=1.1.2.5&f=u
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/mysql/mysql-innodb_io_pattern.patch?r1=1.1.2.3&r2=1.1.2.4&f=u
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/mysql/mysql-innodb_locks_held.patch?r1=1.1.2.4&r2=1.1.2.5&f=u
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/mysql/mysql-innodb_rw_lock.patch?r1=1.1.2.3&r2=1.1.2.4&f=u
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/mysql/mysql-innodb_show_bp.patch?r1=1.1.2.1&r2=1.1.2.2&f=u
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/mysql/mysql-innodb_thread_concurrency_timer_based.patch?r1=1.1&r2=1.1.2.1&f=u
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/mysql/mysql-microslow_innodb.patch?r1=1.1.2.10&r2=1.1.2.11&f=u
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/mysql/mysql-profiling_slow.patch?r1=1.1&r2=1.1.2.1&f=u
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/mysql/mysql-userstatv2.patch?r1=1.1.2.10&r2=1.1.2.11&f=u
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/mysql/mysql.spec?r1=1.353.2.75&r2=1.353.2.76&f=u
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/mysql/percona.sh?r1=1.1&r2=1.2&f=u



More information about the pld-cvs-commit mailing list