diff options
author | Marko Mäkelä <marko.makela@mariadb.com> | 2022-06-07 12:15:27 +0300 |
---|---|---|
committer | Marko Mäkelä <marko.makela@mariadb.com> | 2022-06-09 14:12:49 +0300 |
commit | d61839c71e3e244909972a09f665097af416e87b (patch) | |
tree | 3486195b431511f5af8f6af5ffd18f725b34a692 /man/mysql_secure_installation.1 | |
parent | cf57fa8d879d3621122acd26bfa21b605be79064 (diff) | |
download | mariadb-git-d61839c71e3e244909972a09f665097af416e87b.tar.gz |
MDEV-28708 Increased congestion on buf_pool.flush_list_mutex
In commit f80deb9590775af44da200920ee9ac662e93205d (MDEV-27868)
a fix for a correctness regression caused a performance regression
by increasing the amount of work that is executed while holding
buf_pool.flush_list_mutex.
buf_page_t::set_temp_modified(): Relax an assertion, to allow an
already dirty block to be marked as dirty.
buf_page_t::flush_list_requests: Note that the variable is not
always protected by buf_pool.flush_list_mutex. Already dirty blocks
that are being written to will increment the counter without
holding buf_pool.flush_list_mutex.
mtr_t::process_freed_pages(): Handle pages that were freed during
the execution of the mini-transaction.
ReleaseUnlogged, mtr_t::release_unlogged(): Release modified pages when
no log was written. This is for pages of the temporary tablespace, or for
IMPORT TABLESPACE.
ReleaseModified: Renamed from ReleaseBlocks.
Assume that buf_pool.flush_list_mutex was acquired by the caller.
ReleaseSimple: A combination of ReleaseLatches and ReleaseModified,
for the case that for any modified pages, some earlier modifications
are already waiting to be written.
mtr_t::commit(): Invoke one of release_unlogged(), ReleaseModified,
ReleaseSimple, ReleaseAll. Acquire and release buf_pool.flush_list_mutex
at most once.
memo_slot_release(): Simplify the code.
mtr_t::sx_latch_at_savepoint(), mtr_t::x_latch_at_savepoint():
Reduce the size of the critical section.
fil_space_t::update_last_freed_lsn(), fil_space_t::clear_freed_ranges(),
fil_space_t::add_free_range(): Assume that freed_range_mutex is held
by the caller.
buf_pool_t::prepare_insert_into_flush_list(): Determine the insert
position for buf_pool_t::insert_into_flush_list(). Remove any clean
blocks from buf_pool.flush_list that were encountered while searching.
buf_pool_t::insert_into_flush_list(): Insert the block at the
predetermined position.
Diffstat (limited to 'man/mysql_secure_installation.1')
0 files changed, 0 insertions, 0 deletions