Table of Contents
The complete change history of the InnoDB Plugin can be
viewed in the file ChangeLog that is included in
the source and binary distributions as well as at the InnoDB
website.
Fixed MySQL Bug #48782: On lock wait timeout, CREATE INDEX
attempts DROP TABLE.
Report duplicate table names to the client connection, not to the error log.
Allow CREATE INDEX to be interrupted.
Fixed MySQL Bug #47167: InnoDB Plugin
"set global innodb_file_format_check" cannot set value
by User-Defined Variable.
Fixed MySQL Bug #45992: InnoDB memory not freed after shutdown; and MySQL Bug
#46656:
InnoDB Plugin memory leaks (Valgrind).
Clean up after a crash during DROP INDEX.
When InnoDB crashes while dropping an index, ensure that the
index will be completely dropped during crash recovery.
When a secondary index exists in the MySQL .frm file but not in
the InnoDB data dictionary, return an error instead of letting an
assertion fail in index_read.
Prevent the reuse of tablespace identifiers after InnoDB has crashed during table creation. Also, refuse to start if files with duplicate tablespace identifiers are encountered.
Fixed MySQL Bug #47055: Unconditional exit on ERROR_WORKING_SET_QUOTA
1453 (0x5AD) for InnoDB backend.
Fixed MySQL Bug #37232: InnoDB might get too many read locks for
DML with repeatable-read.
Fixed MySQL Bug #31183: Tablespace full problems not reported in error log; error message unclear.
Modified innodb-zip.test so that the
test will pass with zlib 1.2.3.3. Apparently, the zlib
function compressBound() has been slightly
changed, and the maximum record size of a table with 1K compressed
page size has been reduced by one byte.
Fixed a regression introduced by the fix for MySQL Bug #26316.
Fixed MySQL Bug #44571: InnoDB Plugin crashes on ADD INDEX.
Fixed a bug in the merge sort that can corrupt indexes in fast index creation.
Introduced the settable global variables innodb_old_blocks_pct
and innodb_old_blocks_time for controlling the buffer pool eviction
policy, making it possible to tune the buffer pool LRU eviction policy to
be more resistant against index scans. See
Section 7.14, “Making Buffer Cache Scan Resistant”.
Fixed MySQL Bug #42885: buf_read_ahead_random,
buf_read_ahead_linear counters, thread wakeups. See
Section 8.9, “More Read Ahead Statistics”.
Fixed MySQL Bug #46650: InnoDB assertion autoinc_lock == lock
in lock_table_remove_low on INSERT
SELECT.
Fixed MySQL Bug #46657: InnoDB Plugin: invalid read in
index_merge_innodb test (Valgrind).
Fixed MySQL Bug #42829: binlogging enabled for all schemas regardless of binlog-db-db / binlog-ignore-db.
Enabled inlining of functions and prefetch with Sun Studio.
Changed the defaults for innodb_sync_spin_loops
from 20 to 30 and innodb_spin_wait_delay from 5 to 6.
Implemented adaptive flushing of dirty pages, which uses
heuristics to avoid I/O bursts at checkpoint.
A new parameter
is added to control whether the new flushing algorithm should
be used. See Section 7.11, “Controlling the Flushing Rate of Dirty Pages”.
innodb_adaptive_flushing
Implemented I/O capacity tuning. A new
parameter is added to
control the master threads innodb_io_capacityI/O rate. (To preserve
the former behavior, set this parameter to a value of 100.) The
ibuf merge is also changed from synchronous to
asynchronous. See
Section 7.10, “Controlling the Master Thread I/O Rate”.
Introduced the PAUSE instruction inside
spin-loop where available. See
Section 7.12, “Using the PAUSE instruction in InnoDB spin loops”.
Fixed a crash on
SET GLOBAL innodb_file_format=DEFAULT or
SET GLOBAL innodb_file_format_check=DEFAULT.
Changed the default values for innodb_max_dirty_pages_pct,
innodb_additional_mem_pool_size, innodb_buffer_pool_size, and
innodb_log_buffer_size.
Enabled group commit functionality that was broken in 5.0 when distributed transactions were introduced. See Section 7.9, “Group Commit”.
Enabled the functionality of having multiple background
threads, with two new configuration parameters, innodb_read_io_threads
and innodb_write_io_threads. The Windows only parameter
innodb_file_io_threads has been removed. See
Section 7.8, “Multiple Background I/O Threads”.
Changed the linear read ahead algorithm and disabled
random read ahead. Also introduced a new configuration parameter
innodb_read_ahead_threshold to control the sensitivity of the
linear read ahead. See Section 7.7, “Changes in the Read Ahead Algorithm”.
Standardized comments that allow the extraction of documentation
from code base with the Doxygen tool.
Fixed a bug that could cause failures in secondary index lookups in consistent reads right after crash recovery.
Corrected the estimation of space needed on a compressed page
when performing an update by delete-and-insert.
Removed the statically linked copies of
the zlib and strings
libraries from the binary Windows plugin. Invoke the copies of
these libraries in the mysqld executable, like
the binary InnoDB Plugin does on other platforms.
Trimmed the output of SHOW ENGINE INNODB MUTEX. See
Section 8.8, “More compact output of SHOW ENGINE INNODB MUTEX”.
On Microsoft Windows, make use of atomic memory access to implement mutexes and rw-locks more efficiently. On Sun Solaris 10, if GCC built-in functions for atomic memory access are unavailable, use library functions instead. See Section 7.2, “Faster Locking for Improved Scalability”.
Fixed MySQL Bug #44032: in ROW_FORMAT=REDUNDANT, update
UTF-8 CHAR to/from NULL is
not in-place.
Fixed MySQL Bug #43660: SHOW
INDEXES/ANALYZE does not update
cardinality for indexes of InnoDB table.
Made the parameter innodb_change_buffering settable by
mysqld start-up option. Due to a programming
mistake, it was only possible to set this parameter by the
SET GLOBAL command in InnoDB Plugin
1.0.3.
Added a parameter innodb_spin_wait_delay for controlling
the polling of mutexes and rw-locks. See
Section 7.13, “Control over spin lock polling”.
In consistent reads, issue an error message on attempts to use newly created indexes that may lack required history. See Section 2.6, “Limitations”.
Improved the scalability of InnoDB on multi-core CPUs. See Section 7.2, “Faster Locking for Improved Scalability”.
Added a parameter innodb_change_buffering for controlling
the insert buffering. See Section 7.4, “Controlling InnoDB Insert Buffering”.
Added a parameter innodb_use_sys_malloc for using an
operating system memory allocation rather than the InnoDB
internal memory allocator. See Section 7.3, “Using Operating System Memory Allocators”.
Made it possible to dynamically enable or disable adaptive hash indexing. See Section 7.5, “Controlling Adaptive Hash Indexing”.
Changed the default value of innodb_thread_concurrency
from 8 to 0, for
unlimited concurrency by default. See Section 7.6, “Changes Regarding Thread Concurrency”.
Fixed an issue that the InnoDB Plugin fails if
innodb_buffer_pool_size is defined bigger than
4095M on 64-bit Windows.
Fixed MySQL bug #41676: Table names are case insensitive in locking.
Fixed MySQL bug #41904: Create unique index problem.
Fixed MySQL bug #43043: Crash on BLOB delete operation.
Fixed a bug in recovery when dropping incomplete indexes left behind by fast index creation.
Fixed a crash bug when all rows of a compressed table are deleted.
Fixed a corruption bug when a table is dropped on a busy system that contains compressed tables.
Fixed an assertion failure involving the variable
ut_total_allocated_memory that was caused by
unprotected access during fast index creation.
Implemented the dynamic plugin
(ha_innodb.dll) on Windows.
Added a parameter innodb_stats_sample_pages for
controlling the index cardinality estimates.
Made innodb_stats_on_metadata a settable global parameter.
(MySQL bug #38189)
Made innodb_lock_wait_timeout a settable session parameter.
(MySQL bug #36285)
Fixed bugs related to off-page columns (see Section 5.3, “DYNAMIC Row Format”).
Fixed various bugs related to compressed tables. This includes MySQL bug #36172, a possible but rare corruption, and an incompatible file format change relating to very long rows in compressed tables, and to off-page storage of long column values.
Fixed a bug in crash recovery which was a side effect of incorrect implementation of the system tablespace tagging.
Fixed MySQL bugs related to auto_increment
columns: #26316, #35498, #35602, #36411, #37531, #37788, #38839, #39830, #40224.
Fixed some race conditions, hangs or crashes related to
INFORMATION_SCHEMA tables, fast index creation,
and to the recovery of PREPARED transactions.
Fixed crashes on
DROP TABLE or CREATE TABLE
when there are FOREIGN KEY constraints.
(MySQL bug #38786)
Fixed a crash caused by a conflict between TRUNCATE
TABLE and LOCK TABLES. (MySQL bug
#38231)
Fixed MySQL bug #39939: DROP TABLE or
DISCARD TABLESPACE takes a long time.
Fixed MySQL bug #40359: InnoDB plugin error/warning message during shutdown.
Fixed MySQL bug #40360: Binlog related errors with binlog off.
Applied all changes from MySQL through version 5.1.30.
Fixed bugs related to the packaging of the InnoDB Plugin: MySQL bugs #36222, #36434.
Fixed crash bugs related to the new features of the InnoDB Plugin: MySQL bugs #36169, #36310.
Implemented the system tablespace tagging discussed in Section 4.4.1, “Startup File Format Compatibility Checking”.
Applied all changes from MySQL through version 5.1.25.
The initial release of the InnoDB Plugin is based on the built-in InnoDB in MySQL version 5.1. See Section 1.2, “Features of the InnoDB Plugin” for the main features.