From fc2f2fa85306d80c317e76933264ba3d3675ed1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Tue, 11 Feb 2020 18:44:26 +0200 Subject: MDEV-19747: Deprecate and ignore innodb_log_optimize_ddl During native table rebuild or index creation, InnoDB used to skip redo logging and write MLOG_INDEX_LOAD records to inform crash recovery and Mariabackup of the gaps in redo log. This is fragile and prohibits some optimizations, such as skipping the doublewrite buffer for newly (re)initialized pages (MDEV-19738). row_merge_write_redo(): Remove. We do not write MLOG_INDEX_LOAD records any more. Instead, we write full redo log. FlushObserver: Remove. fseg_free_page_func(): Remove the parameter log. Redo logging cannot be disabled. fil_space_t::redo_skipped_count: Remove. We cannot remove buf_block_t::skip_flush_check, because PageBulk will temporarily generate invalid B-tree pages in the buffer pool. --- storage/innobase/fil/fil0fil.cc | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) (limited to 'storage/innobase/fil') diff --git a/storage/innobase/fil/fil0fil.cc b/storage/innobase/fil/fil0fil.cc index 2d6cae8ce87..d579fd802de 100644 --- a/storage/innobase/fil/fil0fil.cc +++ b/storage/innobase/fil/fil0fil.cc @@ -2253,11 +2253,7 @@ fil_close_tablespace( buffer pool. Thus we can clean the tablespace out of the buffer pool completely and permanently. The flag stop_new_ops also prevents fil_flush() from being applied to this tablespace. */ - - { - FlushObserver observer(space, trx, NULL); - buf_LRU_flush_or_remove_pages(id, &observer); - } + buf_LRU_flush_or_remove_pages(id, true); /* If the free is successful, the X lock will be released before the space memory data structure is freed. */ -- cgit v1.2.1