Skip to content

Commit

Permalink
MDEV-8139 Fix Scrubbing
Browse files Browse the repository at this point in the history
fil_space_t::freed_ranges: Store ranges of freed page numbers.

fil_space_t::last_freed_lsn: Store the most recent LSN of
freeing a page.

fil_space_t::freed_mutex: Protects freed_ranges, last_freed_lsn.

fil_space_create(): Initialize the freed_range mutex.

fil_space_free_low(): Frees the freed_range mutex.

range_set: Ranges of page numbers.

buf_page_create(): Removes the page from freed_ranges when page
is being reused.

btr_free_root(): Remove the PAGE_INDEX_ID invalidation. Because
btr_free_root() and dict_drop_index_tree() are executed in
the same atomic mini-transaction, there is no need to
invalidate the root page.

buf_release_freed_page(): Split from buf_flush_freed_page().
Skip any I/O

buf_flush_freed_pages(): Get the freed ranges from tablespace and
Write punch-hole or zeroes of the freed ranges.

buf_flush_try_neighbors(): Handles the flushing of freed ranges.

mtr_t::freed_pages: Variable to store the list of freed pages.

mtr_t::add_freed_pages(): To add freed pages.

mtr_t::clear_freed_pages(): To clear the freed pages.

mtr_t::m_freed_in_system_tablespace: Variable to indicate whether page has
been freed in system tablespace.

mtr_t::m_trim_pages: Variable to indicate whether the space has been trimmed.

mtr_t::commit(): Add the freed page and update the last freed lsn
in the tablespace and clear the tablespace freed range if space is
trimmed.

file_name_t::freed_pages: Store the freed pages during recovery.

file_name_t::add_freed_page(), file_name_t::remove_freed_page(): To
add and remove freed page during recovery.

store_freed_or_init_rec(): Store or remove the freed pages while
encountering FREE_PAGE or INIT_PAGE redo log record.

recv_init_crash_recovery_spaces(): Add the freed page encountered
during recovery to respective tablespace.
  • Loading branch information
Thirunarayanan committed Jun 12, 2020
1 parent 07d1c85 commit c92f7e2
Show file tree
Hide file tree
Showing 22 changed files with 510 additions and 719 deletions.
14 changes: 0 additions & 14 deletions mysql-test/suite/encryption/disabled.def

This file was deleted.

138 changes: 0 additions & 138 deletions mysql-test/suite/encryption/r/innodb_scrub.result

This file was deleted.

160 changes: 0 additions & 160 deletions mysql-test/suite/encryption/r/innodb_scrub_background.result

This file was deleted.

7 changes: 0 additions & 7 deletions mysql-test/suite/encryption/t/innodb_scrub.opt

This file was deleted.

Loading

0 comments on commit c92f7e2

Please sign in to comment.