mariadb/storage/innobase
Sergey Vojtovich 53cc9aa5be MDEV-15104 - Remove trx_sys_t::rw_trx_ids
Take snapshot of registered read-write transaction identifiers directly
from rw_trx_hash. It immediately saves one trx_sys.mutex lock, reduces
size of another critical section protected by this mutex, and makes
further optimisations like removing trx_sys_t::serialisation_list
possible.

Downside of this approach is bigger overhead for view opening, because
iterating LF_HASH is more expensive compared to taking snapshot of an
array. However for low concurrency overhead difference is negligible,
while for high concurrency mutex is much bigger evil.

Currently we still take trx_sys.mutex to serialise ReadView creation.
This is required to keep serialisation_list ordered by trx->no as well
as not to let purge thread to create more recent snapshot while another
thread gets suspended during creation of older snapshot. This will
become completely mutex free along with serialisation_list removal.

Compared to previous implementation removing element from rw_trx_hash
and serialisation_list is not atomic. We disregard all possible bad
consequences (if there're any) since it will be solved along with
serialisation_list removal.
2018-01-31 15:18:21 +04:00
..
btr MDEV-15059 - Misc small InnoDB scalability fixes 2018-01-26 10:25:33 +04:00
buf Merge bb-10.2-ext into 10.3 2018-01-24 14:00:33 +02:00
data Identify system-versioned columns in the InnoDB dictionary 2017-11-27 15:07:33 +03:00
dict Merge remote-tracking branch 'origin/bb-10.2-ext' into 10.3 2018-01-29 12:44:20 +04: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 MDEV-14482 - Cache line contention on ut_rnd_ulint_counter() 2018-01-26 10:25:33 +04:00
fsp MDEV-14606 Assertion failure on IMPORT TABLESPACE 2017-12-08 09:53:11 +02:00
fts Merge bb-10.2-ext into 10.3 2018-01-30 21:26:53 +02:00
fut MDEV-12270 Port MySQL 8.0 Bug#21141390 REMOVE UNUSED FUNCTIONS AND CONVERT GLOBAL SYMBOLS TO STATIC 2017-03-17 12:48:50 +02:00
gis Merge bb-10.2-ext into 10.3 2018-01-11 19:44:41 +02:00
ha Skip btr_search_latches[] in SHOW ENGINE INNODB STATUS 2017-12-12 20:00:28 +02:00
handler MDEV-15104 - Remove trx_sys_t::rw_trx_ids 2018-01-31 15:18:21 +04:00
ibuf Merge bb-10.2-ext into 10.3 2018-01-24 14:00:33 +02:00
include MDEV-15104 - Remove trx_sys_t::rw_trx_ids 2018-01-31 15:18:21 +04:00
lock MDEV-15132 Avoid accessing the TRX_SYS page 2018-01-31 10:24:19 +02:00
log Replace trx_sys_t* trx_sys with trx_sys_t trx_sys 2018-01-20 16:10:36 +04:00
mach Fix Bug#24707869 GCC 5 AND 6 MISCOMPILE MACH_PARSE_COMPRESSED 2017-04-26 23:03:29 +03:00
mem Inline definition of mem_heap_dup(), mem_heap_strdup(), mem_heap_strdupl() 2017-09-05 08:54:36 +03:00
mtr Merge bb-10.2-ext into 10.3 2018-01-30 21:04:48 +02:00
mysql-test/storage_engine Merge branch '10.0' into 10.1 2017-08-08 10:18:43 +02:00
os Merge bb-10.2-ext into 10.3 2017-11-30 08:16:37 +02:00
page MDEV-15132 Avoid accessing the TRX_SYS page 2018-01-31 10:24:19 +02:00
pars IB: combine is_delete, vers_delete into enum [closes #337] 2017-11-28 15:03:25 +03:00
que MDEV-14824 Assertion `!trx_is_started(trx)' failed in innobase_start_trx_and_assign_read_view 2018-01-11 16:34:31 +02:00
read MDEV-15104 - Remove trx_sys_t::rw_trx_ids 2018-01-31 15:18:21 +04:00
rem Merge bb-10.2-ext into 10.3 2018-01-11 19:44:41 +02:00
row Changed database, tablename and alias to be LEX_CSTRING 2018-01-30 21:33:55 +02:00
srv MDEV-15132 Avoid accessing the TRX_SYS page 2018-01-31 10:24:19 +02:00
sync Changed database, tablename and alias to be LEX_CSTRING 2018-01-30 21:33:55 +02:00
trx MDEV-15104 - Remove trx_sys_t::rw_trx_ids 2018-01-31 15:18:21 +04:00
usr Merge 10.1 into 10.2 2017-05-22 09:46:51 +03:00
ut MDEV-15104 - Remove trx_sys_t::rw_trx_ids 2018-01-31 15:18:21 +04:00
bzip2.cmake cleanup: innodb files in cmake/ 2017-03-29 00:40:22 +02:00
CMakeLists.txt MDEV-14283 : Fix Solaris 10 build. 2017-11-21 21:14:06 +01: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 Merge bb-10.2-ext into 10.3 2017-12-06 19:36:33 +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 Solaris compilation failure: xtradb is linked in statically, ha_innodb.so needs 2014-05-01 14:05:52 +02:00
snappy.cmake cleanup: innodb files in cmake/ 2017-03-29 00:40:22 +02:00