diff options
author | Thirunarayanan Balathandayuthapani <thiru@mariadb.com> | 2020-06-11 22:52:47 +0530 |
---|---|---|
committer | Thirunarayanan Balathandayuthapani <thiru@mariadb.com> | 2020-06-12 09:17:51 +0530 |
commit | c92f7e287fc0e21dc1b181284b1f8e2139d1c331 (patch) | |
tree | 259aa446838140f83ec4d5f8fd8d6aa9301d2652 /mysql-test/suite/innodb/t/innodb_scrub.opt | |
parent | 07d1c8567cbfe94398a9857c47fb9919cad42651 (diff) | |
download | mariadb-git-c92f7e287fc0e21dc1b181284b1f8e2139d1c331.tar.gz |
MDEV-8139 Fix Scrubbing
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.
Diffstat (limited to 'mysql-test/suite/innodb/t/innodb_scrub.opt')
-rw-r--r-- | mysql-test/suite/innodb/t/innodb_scrub.opt | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/mysql-test/suite/innodb/t/innodb_scrub.opt b/mysql-test/suite/innodb/t/innodb_scrub.opt new file mode 100644 index 00000000000..f9984508bde --- /dev/null +++ b/mysql-test/suite/innodb/t/innodb_scrub.opt @@ -0,0 +1 @@ +--innodb-immediate-scrub-data-uncompressed=ON |