mariadb/storage/innobase/ut
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
..
ut0crc32.cc Merge bb-10.2-ext into 10.3 2017-11-30 08:16:37 +02:00
ut0dbg.cc MDEV-14130 InnoDB messages should not refer to the MySQL 5.7 manual 2018-01-10 13:53:44 +02:00
ut0list.cc 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
ut0mem.cc 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
ut0new.cc MDEV-15104 - Remove trx_sys_t::rw_trx_ids 2018-01-31 15:18:21 +04:00
ut0rbt.cc Fix some GCC 7 warnings for InnoDB 2017-08-10 14:00:51 +03:00
ut0rnd.cc MDEV-12271 Port MySQL 8.0 Bug#23150562 REMOVE UNIV_MUST_NOT_INLINE AND UNIV_NONINL 2017-03-17 12:42:07 +02:00
ut0timer.cc MDEV-5834: Merge Kakao Defragmentation implementation to MariaDB 10.1 2014-08-06 15:28:58 +03:00
ut0ut.cc Merge bb-10.2-ext into 10.3 2017-12-12 09:57:17 +02:00
ut0vec.cc MDEV-12271 Port MySQL 8.0 Bug#23150562 REMOVE UNIV_MUST_NOT_INLINE AND UNIV_NONINL 2017-03-17 12:42:07 +02:00
ut0wqueue.cc MDEV-11802 innodb.innodb_bug14676111 fails 2017-02-20 12:32:43 +02:00