-
Type:
Task
-
Status: Closed (View Workflow)
-
Priority:
Critical
-
Resolution: Fixed
-
Fix Version/s: 10.5.2
-
Component/s: Storage Engine - InnoDB
-
Labels:
The InnoDB crash recovery performance can be improved a little while not changing the file format. MDEV-12699 removed unnecessary reads of pages that can be initialized via the redo log. MDEV-19586 will make recovery read the pages in more sequential order.
We should fix some fundamental issues that exist with the current InnoDB redo log record format:
- Records do not contain their length. When buffering records, we must painstakingly parse entire records in order to determine the length. This idea was mentioned in MySQL Bug#82937.
- For B-tree operations, we are writing a lot of redundant data for mlog_parse_index(). We should use a lower-level format and lower-level apply functions. MySQL Bug#82176 merely speeds up the code around mlog_parse_index().
- If a mini-transaction is writing multiple records to a page, the page identifier is being repeated for every record. We should omit the page identifier if multiple consecutive records are modifying the same page.
In this task, we will only improve the redo log record format. Format changes to the redo log blocks and files will be covered by MDEV-14425.
- causes
-
MDEV-21724 Optimize page_cur_insert_rec_low() redo logging
-
- Closed
-
-
MDEV-21725 Optimize btr_page_reorganize_low() redo logging
-
- Stalled
-
-
MDEV-21727 Optimize redo logging for ROW_FORMAT=COMPRESSED
-
- Open
-
-
MDEV-21744 Assertion `!rec_offs_nth_sql_null(offsets, n)' failed in btr_cur_upd_rec_in_place
-
- Closed
-
-
MDEV-21748 ASAN use-after-poison in PageBulk::insertPage on table rebuild
-
- Closed
-
-
MDEV-21749 storage/innobase/page/page0cur.cc:1306: rec_t* page_cur_insert_rec_low(const page_cur_t*, dict_index_t*, const rec_t*, offset_t*, mtr_t*): Assertion `rdm - rd + bd <= insert_buf + rec_size' failed.
-
- Closed
-
-
MDEV-21779 Assertion `!memcmp(insert_buf, rec - extra_size, rec_size)' failed in page_cur_insert_rec_low
-
- Closed
-
-
MDEV-21850 ASAN use-after-poison in page_cur_insert_rec_low
-
- Closed
-
-
MDEV-21892 Assertion `index != clust_index || row_get_rec_trx_id(rec, index, offsets)' failed in row_search_mvcc
-
- Closed
-
-
MDEV-21893 Assertion `log_block_get_start_lsn(lsn, log_block_get_hdr_no(buf)) == lsn' failed upon attempt to start on encrypted datadir from previous versions
-
- Closed
-
-
MDEV-21945 Assertion w==OPT failed in trx_purge_add_undo_to_history()
-
- Closed
-
-
MDEV-21949 key rotation for innodb_encrypt_log is not working in 10.5
-
- Closed
-
-
MDEV-22107 Restore accidentally orphaned MTR_MEMO_MODIFY
-
- Closed
-
-
MDEV-22108 Crash recovery fails with [ERROR] InnoDB: Malformed log record
-
- Closed
-
-
MDEV-22242 B-trees can become extremely skewed
-
- Closed
-
-
MDEV-23806 Undo page corruption on recovery
-
- Closed
-
-
MDEV-24196 WITH_UBSAN runtime error: member call on null pointer of type 'struct log_phys_t'
-
- Closed
-
-
MDEV-24652 mtr fails while reusing the cached undo log block
-
- Closed
-
- is blocked by
-
MDEV-19747 Deprecate and ignore innodb_log_optimize_ddl
-
- Closed
-
-
MDEV-21174 Refactor mlog_write_ulint, mlog_memset, mlog_write_string
-
- Closed
-
-
MDEV-21351 Replace recv_sys.heap with list of buf_block_t*
-
- Closed
-
-
MDEV-21674 purge_sys.stop() no longer waits for purge workers to complete
-
- Closed
-
- relates to
-
MDEV-12699 Improve crash recovery of corrupted data pages
-
- Closed
-
-
MDEV-14425 Change the InnoDB redo log format to reduce write amplification
-
- In Progress
-
-
MDEV-18976 Implement a CHECKSUM redo log record for improved validation
-
- In Progress
-
-
MDEV-19586 Replace recv_sys_t::addr_hash with a std::map
-
- Closed
-
-
MDEV-20562 btr_cur_open_at_rnd_pos() fails to return error for corrupted page
-
- Closed
-
-
MDEV-20584 Clearing delete-mark on R-tree pages does not appear crash-safe
-
- Closed
-
-
MDEV-20636 Potential SPATIAL INDEX corruption with ROW_FORMAT=COMPRESSED
-
- Open
-
-
MDEV-21024 InnoDB is issuing redundant writes to redo log
-
- Closed
-
-
MDEV-22126 Rename confusing constant mtr_t::OPT
-
- Closed
-
-
MDEV-23136 InnoDB init fail after upgrade from 10.4 to 10.5
-
- Open
-
-
MDEV-23986 [ERROR] [FATAL] InnoDB: Page ... name ... page_type ... key_version 1 lsn ... compressed_len ...
-
- Closed
-
-
MDEV-19747 Deprecate and ignore innodb_log_optimize_ddl
-
- Closed
-
-
MDEV-20608 innodb_log_optimize_ddl=OFF may omit some redo log
-
- Open
-
-
MDEV-21899 INSERT into a secondary index with zero-data-length key is not crash-safe
-
- Closed
-
-
MDEV-22097 Not applying DELETE_ROW_FORMAT_REDUNDANT due to corruption
-
- Closed
-
-
MDEV-23474 InnoDB fails to start with Invalid log block checksum after unsetting innodb_log_checksums dynamically
-
- Closed
-