packages (MYSQL_5_0): mysql/mysql-gcc3.patch, mysql/mysql-innodb_io_patches...

glen glen at pld-linux.org
Thu Jul 16 15:02:02 CEST 2009


Author: glen                         Date: Thu Jul 16 13:02:02 2009 GMT
Module: packages                      Tag: MYSQL_5_0
---- Log message:
- percona patches updated by Eero Hänninen; rel 2

---- Files affected:
packages/mysql:
   mysql-gcc3.patch (1.1.2.1 -> 1.1.2.2) , mysql-innodb_io_patches.patch (1.1.2.3 -> 1.1.2.4) , mysql-innodb_io_pattern.patch (1.1.2.2 -> 1.1.2.3) , mysql-innodb_locks_held.patch (1.1.2.3 -> 1.1.2.4) , mysql-innodb_rw_lock.patch (1.1.2.2 -> 1.1.2.3) , mysql-microsec_process.patch (1.1.2.2 -> 1.1.2.3) , mysql-microslow_innodb.patch (1.1.2.8 -> 1.1.2.9) , mysql-userstatv2.patch (1.1.2.8 -> 1.1.2.9) , mysql-xtrabackup.patch (1.1.2.1 -> 1.1.2.2) , mysql.spec (1.353.2.70 -> 1.353.2.71) , mysql-innodb_dict_size_limit.patch (NONE -> 1.1)  (NEW), mysql-innodb_extra_rseg.patch (NONE -> 1.1)  (NEW), mysql-innodb_thread_concurrency_timer_based.patch (NONE -> 1.1)  (NEW), mysql-mysql-test.patch (NONE -> 1.1)  (NEW), mysql-profiling_slow.patch (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: packages/mysql/mysql-gcc3.patch
diff -u packages/mysql/mysql-gcc3.patch:1.1.2.1 packages/mysql/mysql-gcc3.patch:1.1.2.2
--- packages/mysql/mysql-gcc3.patch:1.1.2.1	Tue Jun 16 18:17:58 2009
+++ packages/mysql/mysql-gcc3.patch	Thu Jul 16 15:01:55 2009
@@ -13,3 +13,26 @@
  #endif
  
  /* NOTE! The structure appears here only for the compiler to know its size.
+
+
+
+NOTE: this chunk is to fix buggy percona patch:
+--- mysql-5.0.83/innobase/sync/sync0rw.c~	2009-07-16 12:43:34.863559101 +0300
++++ mysql-5.0.83/innobase/sync/sync0rw.c	2009-07-16 13:01:55.553904932 +0300
+@@ -626,10 +626,14 @@
+ 	} else if (state == RW_LOCK_NOT_LOCKED) {
+ 
+  		/* Spin waiting for the writer field to become free */
+-
++#ifdef  HAVE_ATOMIC_BUILTINS
+         	while (i < SYNC_SPIN_ROUNDS
+ 			&& lock->lock_word != RW_LOCK_BIAS) {
+-        		if (srv_spin_wait_delay) {
++#else
++				while (rw_lock_get_writer(lock) != RW_LOCK_NOT_LOCKED
++						&& i < SYNC_SPIN_ROUNDS) {
++#endif
++				if (srv_spin_wait_delay) {
+ 				ut_delay(ut_rnd_interval(0,
+ 							srv_spin_wait_delay));
+         		}

================================================================
Index: packages/mysql/mysql-innodb_io_patches.patch
diff -u packages/mysql/mysql-innodb_io_patches.patch:1.1.2.3 packages/mysql/mysql-innodb_io_patches.patch:1.1.2.4
--- packages/mysql/mysql-innodb_io_patches.patch:1.1.2.3	Fri Jun 12 15:02:16 2009
+++ packages/mysql/mysql-innodb_io_patches.patch	Thu Jul 16 15:01:55 2009
@@ -1,6 +1,6 @@
-diff -ruN a/innobase/buf/buf0flu.c b/innobase/buf/buf0flu.c
---- a/innobase/buf/buf0flu.c	2008-12-19 02:19:35.000000000 +0900
-+++ b/innobase/buf/buf0flu.c	2009-01-09 15:51:10.000000000 +0900
+diff -r ed298a6e5e10 innobase/buf/buf0flu.c
+--- a/innobase/buf/buf0flu.c	Mon Jun 01 00:36:10 2009 -0700
++++ b/innobase/buf/buf0flu.c	Mon Jun 01 00:36:16 2009 -0700
 @@ -898,10 +898,17 @@
  
  				old_page_count = page_count;
@@ -19,10 +19,18 @@
  				/* fprintf(stderr,
  				"Flush type %lu, page no %lu, neighb %lu\n",
  				flush_type, offset,
-diff -ruN a/innobase/buf/buf0rea.c b/innobase/buf/buf0rea.c
---- a/innobase/buf/buf0rea.c	2009-01-09 15:40:22.000000000 +0900
-+++ b/innobase/buf/buf0rea.c	2009-01-09 15:40:46.000000000 +0900
-@@ -189,6 +189,10 @@
+diff -r ed298a6e5e10 innobase/buf/buf0rea.c
+--- a/innobase/buf/buf0rea.c	Mon Jun 01 00:36:10 2009 -0700
++++ b/innobase/buf/buf0rea.c	Mon Jun 01 00:36:16 2009 -0700
+@@ -20,6 +20,7 @@
+ #include "os0file.h"
+ #include "srv0start.h"
+ 
++extern uint srv_read_ahead;
+ extern ulint srv_read_ahead_rnd;
+ extern ulint srv_read_ahead_seq;
+ extern ulint srv_buf_pool_reads;
+@@ -189,6 +190,10 @@
  	ulint		err;
  	ulint		i;
  
@@ -33,7 +41,7 @@
  	if (srv_startup_is_before_trx_rollback_phase) {
  	        /* No read-ahead to avoid thread deadlocks */
  	        return(0);
-@@ -396,6 +400,10 @@
+@@ -396,6 +401,10 @@
  	ulint		err;
  	ulint		i;
  	
@@ -44,9 +52,9 @@
  	if (srv_startup_is_before_trx_rollback_phase) {
  	        /* No read-ahead to avoid thread deadlocks */
  	        return(0);
-diff -ruN a/innobase/ibuf/ibuf0ibuf.c b/innobase/ibuf/ibuf0ibuf.c
---- a/innobase/ibuf/ibuf0ibuf.c	2008-12-19 02:19:35.000000000 +0900
-+++ b/innobase/ibuf/ibuf0ibuf.c	2009-01-09 15:53:18.000000000 +0900
+diff -r ed298a6e5e10 innobase/ibuf/ibuf0ibuf.c
+--- a/innobase/ibuf/ibuf0ibuf.c	Mon Jun 01 00:36:10 2009 -0700
++++ b/innobase/ibuf/ibuf0ibuf.c	Mon Jun 01 00:36:16 2009 -0700
 @@ -370,8 +370,9 @@
  	grow in size, as the references on the upper levels of the tree can
  	change */
@@ -73,9 +81,9 @@
  
  	sync = FALSE;
  	
-diff -ruN a/innobase/include/os0file.h b/innobase/include/os0file.h
---- a/innobase/include/os0file.h	2009-01-09 15:40:22.000000000 +0900
-+++ b/innobase/include/os0file.h	2009-01-09 15:40:46.000000000 +0900
+diff -r ed298a6e5e10 innobase/include/os0file.h
+--- a/innobase/include/os0file.h	Mon Jun 01 00:36:10 2009 -0700
++++ b/innobase/include/os0file.h	Mon Jun 01 00:36:16 2009 -0700
 @@ -551,8 +551,10 @@
  /*========*/
  	ulint	n,		/* in: maximum number of pending aio operations
@@ -89,9 +97,9 @@
  	ulint	n_slots_sync);	/* in: number of slots in the sync aio array */
  /***********************************************************************
  Requests an asynchronous i/o operation. */
-diff -ruN a/innobase/include/srv0srv.h b/innobase/include/srv0srv.h
---- a/innobase/include/srv0srv.h	2009-01-09 15:40:22.000000000 +0900
-+++ b/innobase/include/srv0srv.h	2009-01-09 15:54:33.000000000 +0900
+diff -r ed298a6e5e10 innobase/include/srv0srv.h
+--- a/innobase/include/srv0srv.h	Mon Jun 01 00:36:10 2009 -0700
++++ b/innobase/include/srv0srv.h	Mon Jun 01 00:36:16 2009 -0700
 @@ -89,6 +89,8 @@
  extern ulint	srv_lock_table_size;
  
@@ -101,7 +109,7 @@
  
  #ifdef UNIV_LOG_ARCHIVE
  extern ibool	srv_log_archive_on;
-@@ -133,6 +135,14 @@
+@@ -133,6 +135,15 @@
  extern ulong	srv_max_purge_lag;
  extern ibool	srv_use_awe;
  extern ibool	srv_use_adaptive_hash_indexes;
@@ -111,14 +119,15 @@
 +extern ulint	srv_ibuf_active_contract;
 +extern ulint	srv_ibuf_accel_rate;
 +extern ulint	srv_flush_neighbor_pages;
++extern ulint	srv_enable_unsafe_group_commit;
 +extern uint	srv_read_ahead;
 +extern ulint	srv_adaptive_checkpoint;
  /*-------------------------------------------*/
  
  extern ulint	srv_n_rows_inserted;
-diff -ruN a/innobase/log/log0log.c b/innobase/log/log0log.c
---- a/innobase/log/log0log.c	2008-12-19 02:19:36.000000000 +0900
-+++ b/innobase/log/log0log.c	2009-01-09 15:40:46.000000000 +0900
+diff -r ed298a6e5e10 innobase/log/log0log.c
+--- a/innobase/log/log0log.c	Mon Jun 01 00:36:10 2009 -0700
++++ b/innobase/log/log0log.c	Mon Jun 01 00:36:16 2009 -0700
 @@ -3326,6 +3326,15 @@
  			(ulong) ut_dulint_get_high(log_sys->last_checkpoint_lsn),
  			(ulong) ut_dulint_get_low(log_sys->last_checkpoint_lsn));
@@ -135,10 +144,10 @@
  	current_time = time(NULL);
  			
  	time_elapsed = 0.001 + difftime(current_time,
-diff -ruN a/innobase/os/os0file.c b/innobase/os/os0file.c
---- a/innobase/os/os0file.c	2009-01-09 15:40:23.000000000 +0900
-+++ b/innobase/os/os0file.c	2009-01-09 15:40:46.000000000 +0900
-@@ -2877,8 +2877,10 @@
+diff -r ed298a6e5e10 innobase/os/os0file.c
+--- a/innobase/os/os0file.c	Mon Jun 01 00:36:10 2009 -0700
++++ b/innobase/os/os0file.c	Mon Jun 01 00:36:16 2009 -0700
+@@ -2878,8 +2878,10 @@
  /*========*/
  	ulint	n,		/* in: maximum number of pending aio operations
  				allowed; n must be divisible by n_segments */
@@ -151,7 +160,7 @@
  	ulint	n_slots_sync)	/* in: number of slots in the sync aio array */
  {
  	ulint	n_read_segs;
-@@ -2888,6 +2890,8 @@
+@@ -2889,6 +2891,8 @@
  #ifdef POSIX_ASYNC_IO
  	sigset_t   sigset;
  #endif
@@ -160,7 +169,7 @@
  	ut_ad(n % n_segments == 0);
  	ut_ad(n_segments >= 4);
  
-@@ -2898,8 +2902,8 @@
+@@ -2899,8 +2903,8 @@
  	}
  
  	n_per_seg = n / n_segments;
@@ -171,7 +180,7 @@
  	
  	/* fprintf(stderr, "Array n per seg %lu\n", n_per_seg); */
  
-@@ -3180,6 +3184,13 @@
+@@ -3181,6 +3185,13 @@
  	struct aiocb*	control;
  #endif
  	ulint		i;
@@ -185,7 +194,7 @@
  loop:
  	os_mutex_enter(array->mutex);
  
-@@ -3198,6 +3209,16 @@
+@@ -3199,6 +3210,16 @@
  		goto loop;
  	}
  
@@ -202,7 +211,7 @@
  	for (i = 0;; i++) {
  		slot = os_aio_array_get_nth_slot(array, i);
  
-@@ -3205,6 +3226,7 @@
+@@ -3206,6 +3227,7 @@
  			break;
  		}
  	}
@@ -210,9 +219,9 @@
  
  	array->n_reserved++;
  
-diff -ruN a/innobase/srv/srv0srv.c b/innobase/srv/srv0srv.c
---- a/innobase/srv/srv0srv.c	2009-01-09 15:40:23.000000000 +0900
-+++ b/innobase/srv/srv0srv.c	2009-01-09 15:58:36.000000000 +0900
+diff -r ed298a6e5e10 innobase/srv/srv0srv.c
+--- a/innobase/srv/srv0srv.c	Mon Jun 01 00:36:10 2009 -0700
++++ b/innobase/srv/srv0srv.c	Mon Jun 01 00:36:16 2009 -0700
 @@ -167,6 +167,8 @@
  ulint	srv_lock_table_size	= ULINT_MAX;
  
@@ -222,7 +231,7 @@
  
  #ifdef UNIV_LOG_ARCHIVE
  ibool	srv_log_archive_on	= FALSE;
-@@ -324,6 +326,22 @@
+@@ -330,6 +332,24 @@
  ibool	srv_use_awe			= FALSE;
  ibool	srv_use_adaptive_hash_indexes 	= TRUE;
  
@@ -240,12 +249,14 @@
 +
 +ulint	srv_flush_neighbor_pages = 1; /* 0:disable 1:enable */
 +
++ulint	srv_enable_unsafe_group_commit = 0; /* 0:disable 1:enable */
++
 +uint	srv_read_ahead = 3; /* 1: random  2: linear  3: Both */
 +ulint	srv_adaptive_checkpoint = 0; /* 0:disable 1:enable */
  /*-------------------------------------------*/
  ulong	srv_n_spin_wait_rounds	= 20;
  ulong	srv_n_free_tickets_to_enter = 500;
-@@ -2214,6 +2232,8 @@
+@@ -2229,6 +2249,8 @@
  	ibool		skip_sleep	= FALSE;
  	ulint		i;
  	
@@ -254,7 +265,7 @@
  #ifdef UNIV_DEBUG_THREAD_CREATION
  	fprintf(stderr, "Master thread starts, id %lu\n",
  			      os_thread_pf(os_thread_get_curr_id()));
-@@ -2302,9 +2322,9 @@
+@@ -2317,9 +2339,9 @@
  						+ log_sys->n_pending_writes;
  		n_ios = log_sys->n_log_ios + buf_pool->n_pages_read
  						+ buf_pool->n_pages_written;
@@ -266,7 +277,7 @@
  
  			srv_main_thread_op_info = "flushing log";
  
-@@ -2317,7 +2337,7 @@
+@@ -2332,7 +2354,7 @@
  			/* Try to keep the number of modified pages in the
  			buffer pool under the limit wished by the user */
  			
@@ -275,7 +286,7 @@
  							  ut_dulint_max);
  
  		        /* If we had to do the flush, it may have taken
-@@ -2326,6 +2346,49 @@
+@@ -2341,6 +2363,49 @@
  			iteration of this loop. */
  			     
  			skip_sleep = TRUE;
@@ -325,7 +336,7 @@
  		}
  
  		if (srv_activity_count == old_activity_count) {
-@@ -2352,10 +2415,10 @@
+@@ -2367,10 +2432,10 @@
  	n_pend_ios = buf_get_n_pending_ios() + log_sys->n_pending_writes;
  	n_ios = log_sys->n_log_ios + buf_pool->n_pages_read
  						+ buf_pool->n_pages_written;
@@ -338,7 +349,7 @@
  
  		srv_main_thread_op_info = "flushing log";
  		log_buffer_flush_to_disk();
-@@ -2365,7 +2428,7 @@
+@@ -2380,7 +2445,7 @@
  	even if the server were active */
  
  	srv_main_thread_op_info = "doing insert buffer merge";
@@ -347,7 +358,7 @@
  
  	srv_main_thread_op_info = "flushing log";
  	log_buffer_flush_to_disk();
-@@ -2407,14 +2470,14 @@
+@@ -2422,14 +2487,14 @@
  		(> 70 %), we assume we can afford reserving the disk(s) for
  		the time it requires to flush 100 pages */
  
@@ -364,7 +375,7 @@
  							ut_dulint_max);
  	}
  
-@@ -2503,7 +2566,7 @@
+@@ -2518,7 +2583,7 @@
  	if (srv_fast_shutdown && srv_shutdown_state > 0) {
  	        n_bytes_merged = 0;
  	} else {
@@ -373,7 +384,7 @@
  	}
  
  	srv_main_thread_op_info = "reserving kernel mutex";
-@@ -2520,7 +2583,7 @@
+@@ -2535,7 +2600,7 @@
  
  	if (srv_fast_shutdown < 2) {
  		n_pages_flushed =
@@ -382,9 +393,9 @@
  	} else {
  		/* In the fastest shutdown we do not flush the buffer pool
  		to data files: we set n_pages_flushed to 0 artificially. */
-diff -ruN a/innobase/srv/srv0start.c b/innobase/srv/srv0start.c
---- a/innobase/srv/srv0start.c	2008-12-19 02:19:37.000000000 +0900
-+++ b/innobase/srv/srv0start.c	2009-01-09 15:40:46.000000000 +0900
+diff -r ed298a6e5e10 innobase/srv/srv0start.c
+--- a/innobase/srv/srv0start.c	Mon Jun 01 00:36:10 2009 -0700
++++ b/innobase/srv/srv0start.c	Mon Jun 01 00:36:16 2009 -0700
 @@ -1205,24 +1205,28 @@
  		return(DB_ERROR);
  	}
@@ -418,9 +429,9 @@
  					SRV_MAX_N_PENDING_SYNC_IOS);
  	}
  	
-diff -ruN a/patch_info/innodb_io_patches.info b/patch_info/innodb_io_patches.info
---- /dev/null	1970-01-01 09:00:00.000000000 +0900
-+++ b/patch_info/innodb_io_patches.info	2009-01-09 15:59:05.000000000 +0900
+diff -r ed298a6e5e10 patch_info/innodb_io_patches.info
+--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
++++ b/patch_info/innodb_io_patches.info	Mon Jun 01 00:36:16 2009 -0700
 @@ -0,0 +1,11 @@
 +File=innodb_io_patches.patch
 +Name=Cluster of past InnoDB IO patches
@@ -433,9 +444,9 @@
 +YK: Initial release
 +2009-01-09
 +YK: Some parameters are added
-diff -ruN a/sql/ha_innodb.cc b/sql/ha_innodb.cc
---- a/sql/ha_innodb.cc	2009-01-09 15:40:23.000000000 +0900
-+++ b/sql/ha_innodb.cc	2009-01-09 15:40:46.000000000 +0900
+diff -r ed298a6e5e10 sql/ha_innodb.cc
+--- a/sql/ha_innodb.cc	Mon Jun 01 00:36:10 2009 -0700
++++ b/sql/ha_innodb.cc	Mon Jun 01 00:36:16 2009 -0700
 @@ -149,6 +149,7 @@
       innobase_lock_wait_timeout, innobase_force_recovery,
       innobase_open_files;
@@ -444,7 +455,7 @@
  longlong innobase_buffer_pool_size, innobase_log_file_size;
  
  /* The default values for the following char* start-up parameters
-@@ -1403,6 +1404,8 @@
+@@ -1417,6 +1418,8 @@
  	srv_mem_pool_size = (ulint) innobase_additional_mem_pool_size;
  
  	srv_n_file_io_threads = (ulint) innobase_file_io_threads;
@@ -453,9 +464,20 @@
  
  	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-01-09 15:40:23.000000000 +0900
-+++ b/sql/ha_innodb.h	2009-01-09 15:59:41.000000000 +0900
+@@ -7330,6 +7333,10 @@
+         trx_t* trx = check_trx_exists(thd);
+ 
+         if (thd->lex->sql_command != SQLCOM_XA_PREPARE) {
++		if (srv_enable_unsafe_group_commit && !thd->variables.innodb_support_xa) {
++			/* choose group commit rather than binlog order */
++			return(0);
++		}
+ 
+                 /* For ibbackup to work the order of transactions in binlog
+                 and InnoDB must be the same. Consider the situation
+diff -r ed298a6e5e10 sql/ha_innodb.h
+--- a/sql/ha_innodb.h	Mon Jun 01 00:36:10 2009 -0700
++++ b/sql/ha_innodb.h	Mon Jun 01 00:36:16 2009 -0700
 @@ -204,6 +204,7 @@
  extern long innobase_additional_mem_pool_size;
  extern long innobase_buffer_pool_awe_mem_mb;
@@ -464,24 +486,26 @@
  extern long innobase_force_recovery;
  extern long innobase_open_files;
  extern char *innobase_data_home_dir, *innobase_data_file_path;
-@@ -234,6 +235,13 @@
- running with the fix disabled because MySQL 5.1 is frozen for such
- behavioral changes. */
- extern char srv_use_legacy_cardinality_algorithm;
+@@ -234,6 +235,15 @@
+ extern ulong srv_thread_concurrency;
+ extern ulong srv_commit_concurrency;
+ extern ulong srv_flush_log_at_trx_commit;
 +extern ulong srv_io_capacity;
 +extern long long srv_ibuf_max_size;
 +extern ulong srv_ibuf_active_contract;
 +extern ulong srv_ibuf_accel_rate;
 +extern ulong srv_flush_neighbor_pages;
++extern ulong srv_enable_unsafe_group_commit;
 +extern uint srv_read_ahead;
 +extern ulong srv_adaptive_checkpoint;
- }
- 
- bool innobase_init(void);
-diff -ruN a/sql/mysqld.cc b/sql/mysqld.cc
---- a/sql/mysqld.cc	2009-01-09 15:40:23.000000000 +0900
-+++ b/sql/mysqld.cc	2009-01-09 16:01:25.000000000 +0900
-@@ -5036,6 +5036,15 @@
++
+ /* An option to enable the fix for "Bug#43660 SHOW INDEXES/ANALYZE does
+ NOT update cardinality for indexes of InnoDB table". By default we are
+ running with the fix disabled because MySQL 5.1 is frozen for such
+diff -r ed298a6e5e10 sql/mysqld.cc
+--- a/sql/mysqld.cc	Mon Jun 01 00:36:10 2009 -0700
++++ b/sql/mysqld.cc	Mon Jun 01 00:36:16 2009 -0700
+@@ -5086,6 +5086,16 @@
    OPT_INNODB_ROLLBACK_ON_TIMEOUT,
    OPT_SECURE_FILE_PRIV,
    OPT_KEEP_FILES_ON_CREATE,
@@ -490,16 +514,17 @@
 +  OPT_INNODB_IBUF_ACTIVE_CONTRACT,
 +  OPT_INNODB_IBUF_ACCEL_RATE,
 +  OPT_INNODB_FLUSH_NEIGHBOR_PAGES,
++  OPT_INNODB_ENABLE_UNSAFE_GROUP_COMMIT,
 +  OPT_INNODB_READ_AHEAD,
 +  OPT_INNODB_ADAPTIVE_CHECKPOINT,
 +  OPT_INNODB_READ_IO_THREADS,
 +  OPT_INNODB_WRITE_IO_THREADS,
    OPT_INNODB_ADAPTIVE_HASH_INDEX,
-   OPT_FEDERATED
- };
-@@ -5344,6 +5353,41 @@
-    (gptr*) &global_system_variables.innodb_table_locks,
-    (gptr*) &global_system_variables.innodb_table_locks,
+   OPT_FEDERATED,
+   OPT_INNODB_USE_LEGACY_CARDINALITY_ALGORITHM
+@@ -5403,6 +5413,45 @@
+    (gptr*) &srv_use_legacy_cardinality_algorithm,
+    (gptr*) &srv_use_legacy_cardinality_algorithm,
     0, GET_BOOL, OPT_ARG, 1, 0, 0, 0, 0, 0},
 +  {"innodb_io_capacity", OPT_INNODB_IO_CAPACITY,
 +   "Number of IO operations per second the server can do. Tunes background IO rate.",
@@ -528,6 +553,10 @@
 +   "Enable/Diasable flushing along modified age. 0:disable 1:enable",
 +   (gptr*) &srv_adaptive_checkpoint, (gptr*) &srv_adaptive_checkpoint,
 +   0, GET_ULONG, REQUIRED_ARG, 0, 0, 1, 0, 0, 0},
++  {"innodb_enable_unsafe_group_commit", OPT_INNODB_ENABLE_UNSAFE_GROUP_COMMIT,
++   "Enable/Disable unsafe group commit when support_xa=OFF and use with binlog or other XA storage engine.",
++   (gptr*) &srv_enable_unsafe_group_commit, (gptr*) &srv_enable_unsafe_group_commit,
++   0, GET_ULONG, REQUIRED_ARG, 0, 0, 1, 0, 0, 0},
 +  {"innodb_read_io_threads", OPT_INNODB_READ_IO_THREADS,
 +   "Number of background read I/O threads in InnoDB.",
 +   (gptr*) &innobase_read_io_threads, (gptr*) &innobase_read_io_threads,
@@ -539,7 +568,7 @@
  #endif /* End HAVE_INNOBASE_DB */
    {"isam", OPT_ISAM, "Obsolete. ISAM storage engine is no longer supported.",
     (gptr*) &opt_isam, (gptr*) &opt_isam, 0, GET_BOOL, NO_ARG, 0, 0, 0,
-@@ -7637,6 +7636,22 @@
+@@ -7644,6 +7693,22 @@
    case OPT_INNODB_LOG_ARCHIVE:
      innobase_log_archive= argument ? test(atoi(argument)) : 1;
      break;
@@ -562,10 +591,10 @@
  #endif /* HAVE_INNOBASE_DB */
    case OPT_MYISAM_RECOVER:
    {
-diff -ruN a/sql/set_var.cc b/sql/set_var.cc
---- a/sql/set_var.cc	2009-01-09 15:40:23.000000000 +0900
-+++ b/sql/set_var.cc	2009-01-09 16:05:22.000000000 +0900
-@@ -484,6 +484,37 @@
+diff -r ed298a6e5e10 sql/set_var.cc
+--- a/sql/set_var.cc	Mon Jun 01 00:36:10 2009 -0700
++++ b/sql/set_var.cc	Mon Jun 01 00:36:16 2009 -0700
+@@ -489,6 +489,39 @@
  sys_var_long_ptr  sys_innodb_flush_log_at_trx_commit(
                                          "innodb_flush_log_at_trx_commit",
                                          &srv_flush_log_at_trx_commit);
@@ -598,12 +627,14 @@
 +};
 +sys_var_enum	sys_innodb_read_ahead("innodb_read_ahead", &srv_read_ahead,
 +                                      &innodb_read_ahead_typelib, fix_innodb_read_ahead);
++sys_var_long_ptr	sys_innodb_enable_unsafe_group_commit("innodb_enable_unsafe_group_commit",
++                                                             &srv_enable_unsafe_group_commit);
 +sys_var_long_ptr	sys_innodb_adaptive_checkpoint("innodb_adaptive_checkpoint",
 +                                                      &srv_adaptive_checkpoint);
  sys_var_const_os_str_ptr sys_innodb_data_file_path("innodb_data_file_path", 
                                                 &innobase_data_file_path);
  sys_var_const_os_str_ptr sys_innodb_data_home_dir("innodb_data_home_dir", 
-@@ -847,6 +859,12 @@
+@@ -860,6 +893,13 @@
    &sys_innodb_thread_concurrency,
    &sys_innodb_commit_concurrency,
    &sys_innodb_flush_log_at_trx_commit,
@@ -612,30 +643,32 @@
 +  &sys_innodb_ibuf_accel_rate,
 +  &sys_innodb_flush_neighbor_pages,
 +  &sys_innodb_read_ahead,
++  &sys_innodb_enable_unsafe_group_commit,
 +  &sys_innodb_adaptive_checkpoint,
  #endif
    &sys_trust_routine_creators,
    &sys_trust_function_creators,
-@@ -982,6 +1000,15 @@
+@@ -997,6 +1037,16 @@
+   {sys_innodb_table_locks.name, (char*) &sys_innodb_table_locks, SHOW_SYS},
+   {sys_innodb_thread_concurrency.name, (char*) &sys_innodb_thread_concurrency, SHOW_SYS},
    {sys_innodb_thread_sleep_delay.name, (char*) &sys_innodb_thread_sleep_delay, SHOW_SYS},
-   {sys_innodb_use_legacy_cardinality_algorithm.name,
-    (char*) &sys_innodb_use_legacy_cardinality_algorithm, SHOW_SYS},
 +  {sys_innodb_io_capacity.name, (char*) &sys_innodb_io_capacity, SHOW_SYS},
 +  {"innodb_ibuf_max_size", (char*) &srv_ibuf_max_size, SHOW_LONGLONG},
 +  {sys_innodb_ibuf_active_contract.name, (char*) &sys_innodb_ibuf_active_contract, SHOW_SYS},
 +  {sys_innodb_ibuf_accel_rate.name, (char*) &sys_innodb_ibuf_accel_rate, SHOW_SYS},
 +  {sys_innodb_flush_neighbor_pages.name, (char*) &sys_innodb_flush_neighbor_pages, SHOW_SYS},
 +  {sys_innodb_read_ahead.name, (char*) &sys_innodb_read_ahead, SHOW_SYS},
++  {sys_innodb_enable_unsafe_group_commit.name, (char*) &sys_innodb_enable_unsafe_group_commit, SHOW_SYS},
 +  {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_use_legacy_cardinality_algorithm.name,
+    (char*) &sys_innodb_use_legacy_cardinality_algorithm, SHOW_SYS},
  #endif
-   {sys_interactive_timeout.name,(char*) &sys_interactive_timeout,   SHOW_SYS},
-   {sys_join_buffer_size.name,   (char*) &sys_join_buffer_size,	    SHOW_SYS},
-@@ -1482,6 +1501,13 @@
+@@ -1459,6 +1509,13 @@
    }
  }
-
+ 
 +#ifdef HAVE_INNOBASE_DB
 +extern void fix_innodb_read_ahead(THD *thd, enum_var_type type)
 +{
@@ -646,13 +679,13 @@
  static void fix_max_binlog_size(THD *thd, enum_var_type type)
  {
    DBUG_ENTER("fix_max_binlog_size");
-diff -ruN a/sql/set_var.h b/sql/set_var.h
---- a/sql/set_var.h	2009-01-12 11:20:31.000000000 +0900
-+++ b/sql/set_var.h	2009-01-12 15:26:35.000000000 +0900
+diff -r ed298a6e5e10 sql/set_var.h
+--- a/sql/set_var.h	Mon Jun 01 00:36:10 2009 -0700
++++ b/sql/set_var.h	Mon Jun 01 00:36:16 2009 -0700
 @@ -31,6 +31,10 @@
-
+ 
  extern TYPELIB bool_typelib, delay_key_write_typelib, sql_mode_typelib;
-
+ 
 +#ifdef HAVE_INNOBASE_DB
 +extern TYPELIB innodb_read_ahead_typelib;
 +#endif /* HAVE_INNOBASE_DB */
@@ -660,7 +693,7 @@
  typedef int (*sys_check_func)(THD *,  set_var *);
  typedef bool (*sys_update_func)(THD *, set_var *);
  typedef void (*sys_after_update_func)(THD *,enum_var_type);
-@@ -1114,6 +1118,9 @@
+@@ -1148,6 +1152,9 @@
  int sql_set_variables(THD *thd, List<set_var_base> *var_list);
  bool not_all_support_one_shot(List<set_var_base> *var_list);
  void fix_delay_key_write(THD *thd, enum_var_type type);

================================================================
Index: packages/mysql/mysql-innodb_io_pattern.patch
diff -u packages/mysql/mysql-innodb_io_pattern.patch:1.1.2.2 packages/mysql/mysql-innodb_io_pattern.patch:1.1.2.3
--- packages/mysql/mysql-innodb_io_pattern.patch:1.1.2.2	Thu Mar 12 22:49:05 2009
+++ packages/mysql/mysql-innodb_io_pattern.patch	Thu Jul 16 15:01:55 2009
@@ -382,16 +382,16 @@
 diff -r 5060df9888d7 sql/ha_innodb.h
 --- a/sql/ha_innodb.h	Tue Feb 17 22:33:54 2009 -0800
 +++ b/sql/ha_innodb.h	Tue Feb 17 22:33:58 2009 -0800
-@@ -244,6 +244,9 @@
+@@ -245,6 +245,9 @@
  extern ulong srv_adaptive_checkpoint;
  extern ulong srv_show_locks_held;
  extern ulong srv_show_verbose_locks;
 +extern ulong srv_io_pattern_trace;
 +extern ulong srv_io_pattern_trace_running;
 +extern ulong srv_io_pattern_size_limit;
- }
- 
- bool innobase_init(void);
+
+ /* An option to enable the fix for "Bug#43660 SHOW INDEXES/ANALYZE does
+ NOT update cardinality for indexes of InnoDB table". By default we are
 @@ -270,6 +273,9 @@
  bool innodb_I_S_buffer_pool_content(THD* thd, TABLE_LIST *tables);
  bool innodb_mutex_show_status(THD* thd);
@@ -471,16 +471,16 @@
  #endif
    &sys_trust_routine_creators,
<<Diff was trimmed, longer than 597 lines>>

---- CVS-web:
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/mysql/mysql-gcc3.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.3&r2=1.1.2.4&f=u
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/mysql/mysql-innodb_io_pattern.patch?r1=1.1.2.2&r2=1.1.2.3&f=u
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/mysql/mysql-innodb_locks_held.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_rw_lock.patch?r1=1.1.2.2&r2=1.1.2.3&f=u
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/mysql/mysql-microsec_process.patch?r1=1.1.2.2&r2=1.1.2.3&f=u
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/mysql/mysql-microslow_innodb.patch?r1=1.1.2.8&r2=1.1.2.9&f=u
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/mysql/mysql-userstatv2.patch?r1=1.1.2.8&r2=1.1.2.9&f=u
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/mysql/mysql-xtrabackup.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.spec?r1=1.353.2.70&r2=1.353.2.71&f=u



More information about the pld-cvs-commit mailing list