Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
10.1.3, 10.2.0, 10.3.0
Description
When a InnoDB data file page is freed, its contents becomes garbage, and any storage allocated in the data file is wasted.
MariaDB 10.4 introduced an InnoDB redo log record MLOG_INIT_FREE_PAGE for marking pages as freed. In MDEV-12353 (MariaDB 10.5.2), that record was replaced with FREE_PAGE. This record could be treated as no-op, or we can punch a hole for page_compressed=1 tables.
If innodb_immediate_scrub_data_uncompressed is set, we should initialize the page with zeros. This will replace some of the non-working scrubbing logic (MDEV-8139). The scrubbing will be fixed further in MDEV-8139.
The following parameters will be deprecated and ignored and the problematic ‘background scrubbing’ code removed:
- innodb-background-scrub-data-uncompressed
- innodb-background-scrub-data-compressed
- innodb-background-scrub-data-interval
- innodb-background-scrub-data-check-interval
For page_compressed tables the freed page will be hole-punched
Attachments
Issue Links
- blocks
-
MDEV-12227 Defer writes to the InnoDB temporary tablespace
- Closed
-
MDEV-17596 Assertion `block->page.flush_observer == __null || block->page.flush_observer == observer' failed in buf_flush_note_modification
- Closed
-
MDEV-18724 Replace buf_block_t::mutex with more std::atomic
- Closed
- causes
-
MDEV-22096 Mariabackup copied too old page or too new checkpoint
- Closed
-
MDEV-22097 Not applying DELETE_ROW_FORMAT_REDUNDANT due to corruption
- Closed
-
MDEV-22103 INNODB_ENCRYPTION_NUM_KEY_REQUESTS is missing from INFORMATION_SCHEMA.GLOBAL_STATUS
- Closed
-
MDEV-22139 fseg_free_page_low() fails to write FREE_PAGE record, breaking recovery
- Closed
-
MDEV-22169 Recovery fails after failing to insert into mlog_init
- Closed
-
MDEV-22495 Assertion mode == 16 || mode == 12 || fix_block->page.status != buf_page_t::FREED failed in ibuf_read_merge_pages()
- Closed
-
MDEV-22710 Assertion `mode == 16 || mode == 12 || fix_block->page.status != buf_page_t::FREED' failed in buf_page_get_low
- Closed
-
MDEV-23252 Assertion failure 'req_type.is_dblwr_recover() || err == DB_SUCCESS' for page_compressed tables
- Closed
-
MDEV-24695 Encryption is modifying a freed page
- Closed
-
MDEV-27500 buf_page_free() fails to drop the adaptive hash index
- Closed
-
MDEV-27985 buf_flush_freed_pages() causes InnoDB to hang
- Closed
-
MDEV-30404 Inconsistent updates of PAGE_MAX_TRX_ID on ROW_FORMAT=COMPRESSED pages
- Closed
-
MDEV-30438 innodb.undo_truncate,4k fails when --innodb-immediate-scrub-data-uncompressed is enabled
- Closed
-
MDEV-32552 Write-ahead logging is broken for freed pages
- Closed
- relates to
-
MDEV-11696 Page Compression Has No Effect on Table Data File Size
- Closed
-
MDEV-16526 Overhaul the InnoDB page flushing
- Closed
-
MDEV-17380 innodb_flush_neighbors=ON should be ignored on SSD
- Closed
-
MDEV-21952 ibdata1 file size growing in MariaDB
- Closed
-
MDEV-23973 Change buffer corruption when reallocating an recently freed page
- Closed
-
MDEV-24569 Assertion `mach_read_from_4(frame + 4U) == block.page.id().page_no()' failed in log_phys_t::apply
- Closed
-
MDEV-25026 Various code paths are accessing freed pages
- Closed
-
MDEV-28699 Shrink temporary tablespaces without restart
- Closed
-
MDEV-31816 buf_LRU_free_page() does not preserve ROW_FORMAT=COMPRESSED block state
- Closed
-
MDEV-33112 innodb_undo_log_truncate=ON is blocking page writes
- Closed
-
MDEV-8139 Fix scrubbing
- Closed
-
MDEV-11068 Review which innodb_compression_algorithm to support in binary packages
- Closed
-
MDEV-12226 Avoid writes of freed (garbage) pages to InnoDB data files
- Closed
-
MDEV-12699 Improve crash recovery of corrupted data pages
- Closed
-
MDEV-15949 InnoDB: Failing assertion: space->n_pending_ops == 0 in fil_delete_tablespace upon DROP TABLE
- Closed
-
MDEV-16796 TRUNCATE TABLE slowdown with innodb_file_per_table=ON
- Closed
-
MDEV-17380 innodb_flush_neighbors=ON should be ignored on SSD
- Closed
-
MDEV-18698 Show InnoDB's internal background threads in SHOW ENGINE INNODB STATUS
- Open
-
MDEV-20813 Assertion `!srv_safe_truncate || !newest_lsn || fil_page_get_type(page)' or `!newest_lsn || fil_page_get_type(page)' failed in buf_flush_init_for_writing
- Closed
-
MDEV-22190 After IMPORT: InnoDB: Record 126 is above rec heap top 120
- Closed
-
MDEV-22839 ROW_FORMAT=COMPRESSED vs PAGE_COMPRESSION=1 - size comparison
- Open
-
MDEV-24780 [FATAL] InnoDB: Trying to read page number <...> with encryption and innodb-background-scrub-data-uncompressed
- Closed