mariadb/storage/innobase
Marko Mäkelä 76c62bc69c MDEV-15914: Restore MLOG_UNDO_INSERT
trx_undof_page_add_undo_rec_log(): Write the MLOG_UNDO_INSERT
record instead of the equivalent MLOG_2BYTES and MLOG_WRITE_STRING.
This essentially reverts commit 9ee8917dfd.

In MariaDB 10.3, I attempted to simplify the crash recovery code
by making use of lower-level redo log records. It turns out that
we must keep the redo log parsing code in order to allow crash-upgrade
from older MariaDB versions (MDEV-14848).

Now, it further turns out that the InnoDB redo log record format is
suboptimal for logging multiple changes to a single page. This simple
change to the redo logging of undo log significantly affects the
INSERT and UPDATE performance.

Essentially, we wrote
	(space_id,page_number,MLOG_2BYTES,2 bytes)
	(space_id,page_number,MLOG_WRITE_STRING,N+4 bytes)
instead of the previously written
	(space_id,page_number,MLOG_UNDO_INSERT,N+2 bytes)

The added redo log volume caused a single-threaded INSERT
(without innodb_adaptive_hash_index) of
1,000,000 rows to consume 11 seconds instead of 9 seconds,
and a subsequent UPDATE of 30,000,000 rows to consume 64 seconds
instead of 58 seconds. If we omitted all redo logging for the
undo log, the INSERT would consume only 4 seconds.
2018-04-26 22:53:33 +03:00
..
btr Fix a lot of compiler warnings found by -Wunused 2018-04-26 17:35:12 +03:00
buf MDEV-15983 Reduce fil_system.mutex contention further 2018-04-23 13:15:54 +03:00
data Merge bb-10.2-ext into 10.3 2018-02-15 10:22:03 +02:00
dict Merge 10.1 into 10.2 2018-04-24 09:39:45 +03:00
eval MDEV-12271 Port MySQL 8.0 Bug#23150562 REMOVE UNIV_MUST_NOT_INLINE AND UNIV_NONINL 2017-03-17 12:42:07 +02:00
fil Fix a lot of compiler warnings found by -Wunused 2018-04-26 17:35:12 +03:00
fsp MDEV-12266: Change dict_table_t::space to fil_space_t* 2018-03-29 22:02:05 +03:00
fts MDEV-15773 - Simplified away trx_free_for_(mysql|background) 2018-04-04 14:09:37 +04:00
fut review fixes 2018-02-16 22:15:51 +03:00
gis Fix a lot of compiler warnings found by -Wunused 2018-04-26 17:35:12 +03:00
ha Skip btr_search_latches[] in SHOW ENGINE INNODB STATUS 2017-12-12 20:00:28 +02:00
handler MDEV-15914: Remove trx_t::undo_mutex 2018-04-26 22:53:33 +03:00
ibuf MDEV-15983 Reduce fil_system.mutex contention further 2018-04-23 13:15:54 +03:00
include MDEV-15914: Restore MLOG_UNDO_INSERT 2018-04-26 22:53:33 +03:00
lock MDEV-15983 Reduce fil_system.mutex contention further 2018-04-23 13:15:54 +03:00
log MDEV-15983 Reduce fil_system.mutex contention further 2018-04-23 13:15:54 +03:00
mach Fix Bug#24707869 GCC 5 AND 6 MISCOMPILE MACH_PARSE_COMPRESSED 2017-04-26 23:03:29 +03:00
mem Merge branch '10.2' into 10.3 2018-03-28 17:31:57 +02:00
mtr MDEV-12266: Change dict_table_t::space to fil_space_t* 2018-03-29 22:02:05 +03:00
mysql-test/storage_engine Merge branch '10.0' into 10.1 2017-08-08 10:18:43 +02:00
os Merge 10.2 to 10.3 2018-04-19 15:23:21 +03:00
page Fix a lot of compiler warnings found by -Wunused 2018-04-26 17:35:12 +03:00
pars MDEV-12266: Change dict_table_t::space to fil_space_t* 2018-03-29 22:02:05 +03:00
que MDEV-15914: Remove trx_t::undo_mutex 2018-04-26 22:53:33 +03:00
read MDEV-15773 - Simplified away trx_sys_t::m_views 2018-04-04 14:09:37 +04:00
rem Remove compiler warnings 2018-04-16 20:16:43 +03:00
row MDEV-15914: Remove trx_t::undo_mutex 2018-04-26 22:53:33 +03:00
srv MDEV-15895 : make Innodb merge temp tables use pfs_os_file_t for 2018-04-17 09:07:38 +01:00
sync MDEV-15914: Remove trx_t::undo_mutex 2018-04-26 22:53:33 +03:00
trx MDEV-15914: Restore MLOG_UNDO_INSERT 2018-04-26 22:53:33 +03:00
ut Merge branch '10.2' into 10.3 2018-03-28 17:31:57 +02:00
bzip2.cmake cleanup: innodb files in cmake/ 2017-03-29 00:40:22 +02:00
CMakeLists.txt Merge remote-tracking branch '10.2' into 10.3 2018-04-12 12:41:19 +03:00
compile-innodb
COPYING.Google
COPYING.Percona
innodb.cmake fix detection of "-Wa,-nH" compiler flags on SunOS/i386 2018-04-10 13:12:35 +02:00
lz4.cmake cleanup: innodb files in cmake/ 2017-03-29 00:40:22 +02:00
lzma.cmake cleanup: innodb files in cmake/ 2017-03-29 00:40:22 +02:00
lzo.cmake cleanup: innodb files in cmake/ 2017-03-29 00:40:22 +02:00
plugin_exports
snappy.cmake cleanup: innodb files in cmake/ 2017-03-29 00:40:22 +02:00