mariadb/storage/innobase/buf
Thirunarayanan Balathandayuthapani caad34df54 MDEV-32968 InnoDB fails to restore tablespace first page from doublewrite buffer when page is empty
- InnoDB fails to find the space id from the page0 of
the tablespace. In that case, InnoDB can use
doublewrite buffer to recover the page0 and write
into the file.

- buf_dblwr_t::init_or_load_pages(): Loads only the pages
which are valid.(page lsn >= checkpoint). To do that,
InnoDB has to open the redo log before system
tablespace, read the latest checkpoint information.

recv_dblwr_t::find_first_page():
1) Iterate the doublewrite buffer pages and find the 0th page
2) Read the tablespace flags, space id from the 0th page.
3) Read the 1st, 2nd and 3rd page from tablespace file and
compare the space id with the space id which is stored
in doublewrite buffer.
4) If it matches then we can write into the file.
5) Return space which matches the pages from the file.

SysTablespace::read_lsn_and_check_flags(): Remove the
retry logic for validating the first page. After
restoring the first page from doublewrite buffer,
assign tablespace flags by reading the first page.

recv_recovery_read_max_checkpoint(): Reads the maximum
checkpoint information from log file

recv_recovery_from_checkpoint_start(): Avoid reading
the checkpoint header information from log file

Datafile::validate_first_page(): Throw error in case
of first page validation fails.
2024-01-15 14:08:27 +05:30
..
buf0block_hint.cc Merge 10.4 into 10.5 2020-10-30 11:15:30 +02:00
buf0buddy.cc Merge 10.4 to 10.5 2020-10-22 17:08:49 +03:00
buf0buf.cc MDEV-32861 InnoDB hangs when running out of I/O slots 2023-11-22 16:54:41 +02:00
buf0checksum.cc Merge 10.4 into 10.5 2019-05-23 10:32:21 +03:00
buf0dblwr.cc MDEV-32968 InnoDB fails to restore tablespace first page from doublewrite buffer when page is empty 2024-01-15 14:08:27 +05:30
buf0dump.cc MDEV-25417: Remove innodb buffer pool load throttling 2022-11-28 11:25:47 +02:00
buf0flu.cc MDEV-33098: Fix some instrumentation for innodb.doublewrite_debug 2024-01-08 14:36:54 +02:00
buf0lru.cc MDEV-26055: Improve adaptive flushing 2023-11-16 17:45:18 +02:00
buf0rea.cc MDEV-33052 MSAN use-of-uninitialized-value in buf_read_ahead_linear() 2023-12-18 10:37:11 +02:00