MDEV-30996 insert.. select in presence of full text index freezes all other commits at commit time
- When binlog is enabled, trasaction takes a lot of time to
do sync operation on innodb fts table. This leads to block
of other transaction commit. To avoid this failure, remove
the fulltext sync operation during transaction commit.
- This patch does the revert of MDEV-25581 and also introduces
the multiple fts background threads to process and optimize
the fts table.
- Introduced the new variable innodb_fulltext_bg_threads
which does background processing of message and optimization.
Minimum value is 1 and Maximum value can be 255
- By introducing the above variable, InnoDB can do sync on
multiple tables parallel
MDEV-30863 Server freeze, all threads in trx_assign_rseg_low()
trx_assign_rseg_low(): Simplify the debug check.
trx_rseg_t::reinit(): Reset the skip_allocation() flag.
This logic was broken in the merge
commit 3e2ad0e918d5d38322994ec9e08fc5dda3a80707
of commit 0de3be8cfdfc26f5c236eaefe12d03c7b4af22c8
(that is, innodb_undo_log_truncate=ON would never be "completed").
This tool tool generates SQL queries which should be able to run on any
MariaDB server of the matching version. Therefore, it should be extremely
conservative in the SQL that it outputs, in order to maximize the chance
that it can run regardless of the build or execution environment of the
server.
See MDEV-18778, MDEV-28263, and MDEV-28782 for previous cases where MariaDB
has FAILED TO ENSURE that the generated timezone.sql actually works in
different build and execution environments. More test coverage is clearly
needed here.
All new code of the whole pull request, including one or several files that are
either new files or modified ones, are contributed under the BSD-new license. I
am contributing on behalf of my employer Amazon Web Services, Inc.
MDEV-31049 fil_delete_tablespace() returns wrong file handle if tablespace was closed by parallel thread
fil_delete_tablespace() stores file handle in local variable and calls
mtr_t::commit_file()=>fil_system_t::detach(..., detach_handle=true), which
sets space->chain.start->handle = OS_FILE_CLOSED. fil_system_t::detach()
is invoked under fil_system.mutex.
But before the mutex is acquired some parallel thread can change
space->chain.start->handle. fil_delete_tablespace() returns value, stored
in local variable, i.e. wrong value.
File handle can be closed, for example, from buf_flush_space() when the
limit of innodb_open_files exceded and fil_space_t::get() causes
fil_space_t::try_to_close() call.
fil_space_t::try_to_close() is executed under fil_system.mutex. And
mtr_t::commit_file() locks it for fil_system_t::detach() call.
fil_system_t::detach() returns detached file handle if its argument
detach_handle is true. The fix is to let mtr_t::commit_file() to pass
that detached file handle to fil_delete_tablespace().
MDEV-30775 Performance regression in fil_space_t::try_to_close() introduced in MDEV-23855
Post-push fix.
10.5 MDEV-30775 fix inserts just opened tablespace just after the element
which fil_system.space_list_last_opened points to.
In MDEV-25223 fil_system_t::space_list was changed from UT_LIST to
ilist. ilist<...>::insert(iterator pos, reference value) inserts element
to list before pos.
But it was not taken into account during 10.5->10.6 merge in
85cbfaefee694cdd490b357444f24ff16b8042e8, and the fix
does not work properly, i.e. it inserted just opened tablespace to the
position preceding fil_system.space_list_last_opened.
f2fde3f...
by
Tuukka Pasanen <email address hidden>
MDEV-30687: Make small facelifting to autobake-debs.sh
Currently autobake-debs.sh does not pass shellcheck
it fails making errors:
* SC1091 when using shellcheck -x it needs to know where to
find ./VERSION. As this is not needed we just specify it
as /dev/null as mentioned in shellcheck documentation: https://www.shellcheck.net/wiki/SC1091
* SC2086 make sure that there is no globbing or word splitting
in dpkg-buidpackage string. This not big problem or about to happen
but now extra parameter parsing is more Bash compliant with
using array.
Change BUILDPACKAGE_PREPEND to BUILDPACKAGE_DPKGCMD which holds
'eatmydata' if it's available and needed 'dpkg-buildpackage' https://www.shellcheck.net/wiki/SC2086