mariadb/storage/innobase
Sergey Vojtovich d665e79c5b MDEV-7660 - MySQL WL#6671 "Improve scalability by not using thr_lock.c locks
for InnoDB tables"

Don't use thr_lock.c locks for InnoDB tables. Below is list of changes that
were needed to implement this:
- HANDLER OPEN acquireis MDL_SHARED_READ instead of MDL_SHARED
- HANDLER READ calls external_lock() even if SE is not going to be locked by
  THR_LOCK
- InnoDB lock wait timeouts are now honored which are much shorter by default
  than server lock wait timeouts (1 year vs 50 seconds)
- with @@autocommit= 1 LOCK TABLES disables autocommit implicitely, though
  user still sees @@autocommt= 1
- the above starts implicit transaction
- transactions started by LOCK TABLES are now rolled back on disconnect
  (previously everything was committed due to autocommit)
- transactions started by LOCK TABLES are now rolled back by ROLLBACK
  (previously everything was committed due to autocommit)
- it is now impossible to change BINLOG_FORMAT under LOCK TABLES (at least
  to statement) due to running transaction
- LOCK TABLES WRITE is additionally handled by MDL
- ...in contrast LOCK TABLES READ protection against DML is pure InnoDB
- combining transactional and non-transactional tables under LOCK TABLES
  may cause rolled back changes in transactional table and "committed"
  changes in non-transactional table
- user may disable innodb_table_locks, which will cause LOCK TABLES to be
  noop basically

Removed tests for BUG#45143 and BUG#55930 which cover InnoDB + THR_LOCK. To
operate properly these tests require code flow to go through THR_LOCK debug
sync points, which is not the case after this patch. These tests are removed
by WL#6671 as well. An alternative is to port them to different storage engine.
2016-11-03 16:35:15 +04:00
..
api MDEV-10813 - Clean-up InnoDB atomics, memory barriers and mutexes 2016-10-17 18:35:48 +04:00
btr MDEV-10813 - Clean-up InnoDB atomics, memory barriers and mutexes 2016-10-17 18:35:48 +04:00
buf Bug#23631471 BUF_BLOCK_ALIGN() MAKES INCORRECT ASSUMPTIONS ABOUT CHUNK SIZE 2016-11-02 12:29:41 +04:00
data Merge InnoDB 5.7 from mysql-5.7.14. 2016-09-08 15:49:03 +03:00
dict MDEV-10813 - Clean-up InnoDB atomics, memory barriers and mutexes 2016-10-17 18:35:48 +04:00
eval Merge InnoDB 5.7 from mysql-5.7.9. 2016-09-02 13:22:28 +03:00
fil Remove a bunch of TODO's, fix perfschema.threads_innodb test 2016-09-11 10:57:05 +02:00
fsp Merge InnoDB 5.7 from mysql-5.7.14. 2016-09-08 15:49:03 +03:00
fts Fix crash on innodb_fts.innobase_drop_fts_index_table 2016-09-14 15:11:01 +03:00
fut Merge InnoDB 5.7 from mysql-5.7.9. 2016-09-02 13:22:28 +03:00
gis Remove a bunch of TODO's, fix perfschema.threads_innodb test 2016-09-11 10:57:05 +02:00
ha Merge InnoDB 5.7 from mysql-5.7.9. 2016-09-02 13:22:28 +03:00
handler MDEV-7660 - MySQL WL#6671 "Improve scalability by not using thr_lock.c locks 2016-11-03 16:35:15 +04:00
ibuf MDEV-10813 - Clean-up InnoDB atomics, memory barriers and mutexes 2016-10-17 18:35:48 +04:00
include MDEV-8791 - AIX: Unresolved Symbols during linking 2016-10-31 12:18:23 +04:00
lock Remove duplicated comments. 2016-10-23 13:41:36 -04:00
log MDEV-10813 - Clean-up InnoDB atomics, memory barriers and mutexes 2016-10-17 18:35:49 +04:00
mach Merge InnoDB 5.7 from mysql-5.7.9. 2016-09-02 13:22:28 +03:00
mem Merge InnoDB 5.7 from mysql-5.7.9. 2016-09-02 13:22:28 +03:00
mtr Merge InnoDB 5.7 from mysql-5.7.14. 2016-09-08 15:49:03 +03:00
mysql-test/storage_engine Follow-up for MDEV-6720 (enable connection log in mysqltest by default) 2016-06-19 20:30:03 +03:00
os MDEV-10813 - Clean-up InnoDB atomics, memory barriers and mutexes 2016-10-17 18:35:49 +04:00
page MDEV-10727: Merge 5.7 Innochecksum with 5.6 2016-09-30 08:08:19 +03:00
pars Merge InnoDB 5.7 from mysql-5.7.14. 2016-09-08 15:49:03 +03:00
que Merge InnoDB 5.7 from mysql-5.7.14. 2016-09-08 15:49:03 +03:00
read Merge InnoDB 5.7 from mysql-5.7.9. 2016-09-02 13:22:28 +03:00
rem Merge InnoDB 5.7 from mysql-5.7.14. 2016-09-08 15:49:03 +03:00
row MDEV-10813 - Clean-up InnoDB atomics, memory barriers and mutexes 2016-10-17 18:35:48 +04:00
srv MDEV-10813 - Clean-up InnoDB atomics, memory barriers and mutexes 2016-10-17 18:35:49 +04:00
sync MDEV-7148 - Recurring: InnoDB: Failing assertion: !lock->recursive 2016-10-17 18:35:49 +04:00
trx Change all space indentions to tab. 2016-10-23 13:36:26 -04:00
usr Merge InnoDB 5.7 from mysql-5.7.9. 2016-09-02 13:22:28 +03:00
ut compilation failure on power8 2016-09-22 12:04:13 +02:00
CMakeLists.txt Merge 10.2 2016-09-23 09:24:22 +10:00
compile-innodb move to storage/innobase 2015-05-04 19:17:21 +02:00
COPYING.Google move to storage/innobase 2015-05-04 19:17:21 +02:00
COPYING.Percona move to storage/innobase 2015-05-04 19:17:21 +02:00
innodb.cmake MDEV-10813 - Clean-up InnoDB atomics, memory barriers and mutexes 2016-10-17 18:35:49 +04:00
plugin_exports Solaris compilation failure: xtradb is linked in statically, ha_innodb.so needs 2014-05-01 14:05:52 +02:00