maria:st-10.10-MDEV-32374

Last commit made on 2023-11-02
Get this branch:
git clone -b st-10.10-MDEV-32374 https://git.launchpad.net/maria

Branch merges

Branch information

Name:
st-10.10-MDEV-32374
Repository:
lp:maria

Recent commits

b58e1ce... by Marko Mäkelä

MDEV-32374 log_sys.lsn_lock is a performance hog

The log_sys.lsn_lock that was introduced in
commit a635c40648519fd6c3729c9657872a16a0a20821
had better be located in the same cache line with log_sys.latch
so that log_t::append_prepare() needs to modify only two first
cache lines where log_sys is stored.

log_t::lsn_lock: On Linux, change the type from pthread_mutex_t to
something that may be as small as 32 bits, to pack more data members
in the same cache line. On Microsoft Windows, CRITICAL_SECTION works
better.

log_t::check_flush_or_checkpoint_: Renamed to need_checkpoint.
There is no need to pause all writer threads in log_free_check() when
we only need to write log_sys.buf to ib_logfile0. That will be done in
mtr_t::commit().

log_t::append_prepare_wait(): Make the member function non-static
to simplify the call interface, and add a parameter for the LSN.

log_t::append_prepare(): Invoke append_prepare_wait() at most once.
Only set_check_for_checkpoint() if a log checkpoint needs to
be written. If the log buffer needs to be written, we will take care
of it ourselves later in our caller. This will reduce interference
with log_free_check() in other threads.

mtr_t::commit(): Call log_write_up_to() if needed.

log_t::get_write_target(): Return a log_write_up_to() target
to mtr_t::commit().

buf_flush_ahead(): If we are in furious flushing, call
log_sys.set_check_for_checkpoint() so that all writers will wait
in log_free_check() until the checkpoint is done. Otherwise,
the test innodb.insert_into_empty could occasionally report
an error "Crash recovery is broken".

log_check_margins(): Replaced by log_free_check().

log_flush_margin(): Removed. This is part of mtr_t::commit()
and other operations that write log.

log_t::create(), log_t::attach(): Guarantee that buf_free < max_buf_free
will always hold on PMEM, to satisfy an assumption of
log_t::get_write_target().

0187abf... by Oleksandr "Sanja" Byelkin

Merge branch 'nn-10.6-merge' into bb-10.10-release

501588a... by Oleksandr "Sanja" Byelkin

Merge branch '10.6' into nn-10.6-merge

90e1148... by Sergei Golubchik

update C/C - compilation failure with gcc7 on s390x-sles-12

9130b6c... by Marko Mäkelä

fixup! a002141d44b3bc13a89f60ad8cc31a3e50484e82

a002141... by Oleksandr "Sanja" Byelkin

Merge branch 'bb-10.6-release' into bb-10.10-release

ba07d5d... by Oleksandr "Sanja" Byelkin

Merge branch 'nn-10.5-merge' into bb-10.6-release

512da0d... by Oleksandr "Sanja" Byelkin

Merge branch '10.6' into bb-10.6-release

0cc809f... by Marko Mäkelä

MDEV-31826: Memory leak on failed IMPORT TABLESPACE

fil_delete_tablespace(): Invoke fil_space_free_low() directly.
This fixes up commit 39e3ca8bd25fc539ed08ff464e8a3189ff9f7fa3

3af9f88... by Oleksandr "Sanja" Byelkin

Make it compile with clang