From: kevin.lewis Date: August 2 2012 7:26pm Subject: bzr push into mysql-5.6 branch (kevin.lewis:4099 to 4100) Bug#14315223 List-Archive: http://lists.mysql.com/commits/144510 X-Bug: 14315223 Message-Id: <20120802192659.36949.72714.4100@kevin-lewis-macbook.local> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit 4100 kevin.lewis@stripped 2012-08-02 Bug#14315223 - INNODB ASSERT IN TRX0RSEG.CC FOR MYSQL_INSTALL_DB The assert in this bug happens because ibdata1 was initialized like this; innodb_data_file_path=ibdata1:10M:autoextend:max:10M InnoDB asserts when there is not enough space in the system tablespace to allocate all pages needed at bootstrap. A maximum size of 10 Mb works in 5.1 because the initial requires size of ibdata1 was less than 10M. But in 5.5, a change was made to allocate all 128 rollback segments at bootstrap. Since then, the initial size has been 10M + the default autoextend size of 8M. If we were to make the default initial size of ibdata1 to be just 11M instead of 10M, it would not autoextend during bootstrap and the initial size of each ibdata1 file would be 11M. This patch simply changes it to 12M to make room for a few small tables before it does the first autoextend. This will help MTR run faster. In 5.6, worklog 6216 changes the autoextend size from 8M to 64M. This changes the initial size of ibdata1 from 18M in 5.5 and earlier releases of 5.6 to 74M in the current mysql-5.6 and mysql-trunk. So this change is especially needed in 5.6. This patch does not fix the possibility of the assert in this bug. But it makes it less likely that someone would use a senseless startup setting like that by declaring a more appropriate initial size for the system tablespace. RB:1173 approved by Sunny and also reviewed by Jimmy. modified: storage/innobase/handler/ha_innodb.cc 4099 Inaam Rana 2012-08-02 Bug#13029546 CREATION OF BIG INNODB_LOG_FILE TAKES TOO LONG rb://1170 approved by: Jimmy Yang The bug title is a little misleading. The creation of redo log file does not take longer than expected. This patch is to direct io when creating the files to avoid polluting kernel buffers and any unintended delays because of swapping etc. modified: storage/innobase/srv/srv0start.cc === modified file 'storage/innobase/handler/ha_innodb.cc' --- a/storage/innobase/handler/ha_innodb.cc revid:inaam.rana@stripped +++ b/storage/innobase/handler/ha_innodb.cc revid:kevin.lewis@stripped @@ -2848,12 +2848,12 @@ innobase_init( srv_data_home = (innobase_data_home_dir ? innobase_data_home_dir : default_path); - /* Set default InnoDB data file size to 10 MB and let it be + /* Set default InnoDB data file size to 12 MB and let it be auto-extending. Thus users can use InnoDB in >= 4.0 without having to specify any startup options. */ if (!innobase_data_file_path) { - innobase_data_file_path = (char*) "ibdata1:10M:autoextend"; + innobase_data_file_path = (char*) "ibdata1:12M:autoextend"; } /* Since InnoDB edits the argument in the next call, we make another No bundle (reason: useless for push emails).