Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
10.8.1
Description
MDEV-14425 improved write performance less than it was hoped. We are still seeing log_sys.mutex and buf_pool.mutex dominating the wait times.
A prominent bottleneck was identified to be log_sys.mutex between log_sys.append_prepare() and log_close(). To protect the copying of data to log_sys.buf, we only need a shared log_sys.latch, which can replace log_sys.mutex and log_sys.flush_order_mutex. The log_sys.lsn and the position of log_sys.buf needs to be protected by a new log_sys.lsn_lock. Writes of log_sys.buf to the file system will have to acquire exclusive log_sys.latch.
While working on this code, we can also make mtr_t::commit() invoke buf_pool.page_cleaner_wakeup() and update Innodb_buffer_pool_write_requests at most once per call.
Attachments
Issue Links
- causes
-
MDEV-27868 buf_pool.flush_list is in the wrong order
- Closed
-
MDEV-27876 Server building fails on MacOS caused by srw_lock_impl<false> template specialization
- Closed
-
MDEV-27969 buf_page_cleaner not getting signaled event if dirty_pct > innodb_max_dirty_pages_pct_lwm
- Closed
-
MDEV-28043 Race condition between mtr_t::commit() and checkpoint
- Closed
-
MDEV-32374 log_sys.lsn_lock is a performance hog
- Closed
-
MDEV-34689 Redo log corruption at high load
- Closed
- relates to
-
MDEV-27866 Switching log_sys.latch to use spin based variant
- Closed
-
MDEV-27910 Internal compiler error on CentOS 7 ARMv8 GCC 4.8.5
- Closed
-
MDEV-28111 Redo log writes are being buffered on Linux for no good reason
- Closed
-
MDEV-14425 Change the InnoDB redo log format to reduce write amplification
- Closed
-
MDEV-14462 Confusing error message: ib_logfiles are too small for innodb_thread_concurrency=0
- Closed
-
MDEV-21923 Write redo log concurrently without lock
- Needs Feedback
-
MDEV-33670 Redo log overwritten/corrupted
- Confirmed