An error occurred fetching the project authors.
- 21 Nov, 2023 1 commit
-
-
Marko Mäkelä authored
In any test that uses wait_all_purged.inc, ensure that InnoDB tables will be created without persistent statistics. This is a follow-up to commit cd04673a after a similar failure was observed in the innodb_zip.blob test.
-
- 25 Oct, 2023 1 commit
-
-
Marko Mäkelä authored
The motivation of introducing the parameter innodb_purge_rseg_truncate_frequency in mysql/mysql-server@28bbd66ea5f6acf80fcb381057bb7ca5b7b188d2 and mysql/mysql-server@8fc2120fed11d2498ecb3635d87f414c76985fce seems to have been to avoid stalls due to freeing undo log pages or truncating undo log tablespaces. In MariaDB Server, innodb_undo_log_truncate=ON should be a much lighter operation than in MySQL, because it will not involve any log checkpoint. Another source of performance stalls should be trx_purge_truncate_rseg_history(), which is shrinking the history list by freeing the undo log pages whose undo records have been purged. To alleviate that, we will introduce a purge_truncation_task that will offload this from the purge_coordinator_task. In that way, the next innodb_purge_batch_size pages may be parsed and purged while the pages from the previous batch are being freed and the history list being shrunk. The processing of innodb_undo_log_truncate=ON will still remain the responsibility of the purge_coordinator_task. purge_coordinator_state::count: Remove. We will ignore innodb_purge_rseg_truncate_frequency, and act as if it had been set to 1 (the maximum shrinking frequency). purge_coordinator_state::do_purge(): Invoke an asynchronous task purge_truncation_callback() to free the undo log pages. purge_sys_t::iterator::free_history(): Free those undo log pages that have been processed. This used to be a part of trx_purge_truncate_history(). purge_sys_t::clone_end_view(): Take a new value of purge_sys.head as a parameter, so that it will be updated while holding exclusive purge_sys.latch. This is needed for race-free access to the field in purge_truncation_callback(). Reviewed by: Vladislav Lesin
-
- 12 Sep, 2022 1 commit
-
-
Alexander Barkov authored
-
- 14 Apr, 2020 1 commit
-
-
Marko Mäkelä authored
The test innodb.innodb_wl6326 that had been disabled in 10.4 due to MDEV-21535 is failing on 10.5 due to a different reason: the removal of the MLOG_COMP_END_COPY_CREATED operations in MDEV-12353 commit 276f996a caused PAGE_LAST_INSERT to be set to something nonzero by the function page_copy_rec_list_end(). This in turn would cause btr_page_get_split_rec_to_right() to behave differently: we would not attempt to split the page at all, but simply insert the new record into the new, empty, right leaf page. Even though the change reduced the sizes of some tables, it is better to aim for balanced trees. page_copy_rec_list_end(), PageBulk::finishPage(): Preserve PAGE_LAST_INSERT, PAGE_N_DIRECTION, PAGE_DIRECTION. PageBulk::finish(): Move some common code from PageBulk::finishPage().
-
- 13 Feb, 2020 1 commit
-
-
Marko Mäkelä authored
Instead of writing the high-level redo log records MLOG_LIST_END_COPY_CREATED, MLOG_COMP_LIST_END_COPY_CREATED write log for each individual insert of a record. page_copy_rec_list_end_to_created_page(): Remove. This will improve the fill factor of some pages. Adjust some tests accordingly. PageBulk::init(), PageBulk::finish(): Avoid setting bogus limits to PAGE_HEAP_TOP and PAGE_N_DIR_SLOTS. Avoid accessor functions that would enforce these limits before the correct ones are set at the end of PageBulk::finish().
-
- 08 Aug, 2017 1 commit
-
-
Marko Mäkelä authored
The file wait_innodb_all_purged.inc waited for InnoDB purge in a way that only worked in debug builds. The file wait_all_purged.inc provides a better mechanism.
-
- 19 Feb, 2017 1 commit
-
-
Marko Mäkelä authored
Revert the MDEV-4396 tweak to innodb.innodb_bug14676111. We must fix the root cause instead. Allow gcol.innodb_virtual_purge to run on a non-debug build (If wait_innodb_all_purged.inc is used in a non-debug test, it will have no effect.) Add the test innodb.index_merge_threshold from MySQL 5.7.
-