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.
With the closer integration of InnoDB into the MySQL server starting in MySQL 5.1, you can find recent InnoDB change log entries in MySQL Release Notes in the MySQL Reference Manual.
Improved crash recovery performance.
Fixed MySQL Bug #52102: InnoDB Plugin shows performance drop comparing to builtin InnoDB on Windows only. Disabled Windows atomics by default.
Fixed MySQL Bug #51378: Init 'ref_length' to correct value, in case of an out of bound MySQL primary_key.
Made SHOW ENGINE INNODB MUTEX STATUS
display
SUM(os_waits)
for the buffer pool block mutexes
and locks.
Fixed ALTER TABLE ... IMPORT TABLESPACE
of
compressed tables.
Fixed MySQL Bug #49535: Available memory check slows down crash recovery tens of times.
Let the master thread sleep if the amount of work to be done is calibrated as taking less than a second.
Fixed MySQL Bug #49001: SHOW INNODB STATUS deadlock info incorrect when deadlock detection aborts.
Fixed MySQL Bug #35077: Very slow DROP TABLE (ALTER TABLE, OPTIMIZE TABLE) on compressed tables.
Fixed MySQL Bug
#49497:
Error 1467 (ER_AUTOINC_READ_FAILED
) on
inserting a negative value.
Do not merge buffered inserts to compressed pages before the redo log has been applied in crash recovery.
Do not attempt to access a clustered index record that has been
marked for deletion, On the READ UNCOMMITTED
isolation level. In previous versions, the InnoDB would attempt
to retrieve a previous version of the record in this case.
Fixed an uninitialized access to
block->is_hashed
, when disabling the adaptive
hash index.
Fixed MySQL Bug
#46193:
Crash when accessing tables after enabling innodb_force_recovery
option.
Fixed MySQL Bug #49238: Creating / Dropping a temporary table while at 1023 transactions will cause assert.
Display the zlib
version number at startup.
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_capacity
I/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 of 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.