Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
10.5
Description
InnoDB implements its own complex rw-latch whose special features (recursive X-locks and SX-locks) are only needed for buf_block_t::lock and dict_index_t::lock.
It would be tempting to use the lightweight wrapper mysql_rwlock_t, but unfortunately it would introduce a performance regression on Linux. On Microsoft Windows, we can use a straightforward wrapper of SRWLOCK. On Linux, a std::atomic<uint32_t> and a futex will do. On anything else, we can use mysql_rwlock_t.
Attachments
Issue Links
- blocks
-
MDEV-24142 rw_lock_t has unnecessarily complex wait logic
- Closed
-
MDEV-24258 Merge dict_sys.mutex into dict_sys.latch
- Closed
- causes
-
MDEV-24884 Hang in ssux_lock_low::write_lock()
- Closed
- is blocked by
-
MDEV-24171 index_online_log is incorrectly instrumented as rw-lock, not mutex
- Closed
-
MDEV-24271 rw_lock::read_lock_yield() may cause writer starvation
- Closed
- relates to
-
MDEV-7109 Add support for INFORMATION_SCHEMA.INNODB_SEMAPHORE_WAITS
- Closed
-
MDEV-7399 Add support for INFORMATION_SCHEMA.INNODB_MUTEXES
- Closed
-
MDEV-24410 Deadlock between freeing and allocating undo pages
- Closed
-
MDEV-25267 Reported latching order violation in ibuf_remove_free_page()
- Closed
-
MDEV-21330 Lock monitor doesn't print a semaphore's last reserved thread in non-debug builds and INFORMATION_SCHEMA.INNODB_SYS_SEMAPHORE_WAITS is totally broken
- Closed
-
MDEV-24630 MY_RELAX_CPU assembly instruction upgrade/research for memory barrier on ARM
- Closed
-
MDEV-32065 Always check whether lock is free at first to optimize InnoDB mutexes
- Open