mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 20:12:31 +01:00
4a668c1892
The InnoDB buffer pool and locking were heavily refactored in MariaDB Server 10.6. Among other things, dict_sys.mutex was removed, and the contended lock_sys.mutex was replaced with a combination of lock_sys.latch and distributed latches in hash tables. Also, a default value was changed to innodb_flush_method=O_DIRECT to improve performance in write-heavy workloads. One thing where an adjustment was missing is around the parameters innodb_max_purge_lag (number of committed transactions waiting to be purged), and innodb_max_purge_lag_delay (maximum number of microseconds to delay a DML operation). purge_coordinator_state::do_purge(): Pass the history_size to trx_purge() and reset srv_dml_needed_delay if the history is empty. Keep executing the loop non-stop as long as srv_dml_needed_delay is set. trx_purge_dml_delay(): Made part of trx_purge(). Set srv_dml_needed_delay=0 when nothing can be purged (!n_pages_handled). row_mysql_delay_if_needed(): Mimic the logic of innodb_max_purge_lag_wait_update(). Reviewed by: Thirunarayanan Balathandayuthapani |
||
---|---|---|
.. | ||
row0ext.cc | ||
row0ftsort.cc | ||
row0import.cc | ||
row0ins.cc | ||
row0log.cc | ||
row0merge.cc | ||
row0mysql.cc | ||
row0purge.cc | ||
row0quiesce.cc | ||
row0row.cc | ||
row0sel.cc | ||
row0uins.cc | ||
row0umod.cc | ||
row0undo.cc | ||
row0upd.cc | ||
row0vers.cc |