[MDEV-18644] Support FULL_CRC32 for compressed pages. Created: 2019-02-19  Updated: 2022-03-25  Resolved: 2019-03-18

Status: Closed
Project: MariaDB Server
Component/s: Storage Engine - InnoDB
Fix Version/s: 10.4.4

Type: Task Priority: Major
Reporter: Thirunarayanan Balathandayuthapani Assignee: Marko Mäkelä
Resolution: Fixed Votes: 0
Labels: None

Issue Links:
Blocks
blocks MDEV-11916 Page compression - use smaller writes... Open
Problem/Incident
causes MDEV-23986 [ERROR] [FATAL] InnoDB: Page ... nam... Closed
Relates
relates to MDEV-18958 InnoDB buffer pool load is opening an... Stalled
relates to MDEV-19534 Make innodb_checksum_algorithm=full_c... Closed
relates to MDEV-20588 Mariabackup incorrectly thinks a comp... Closed
relates to MDEV-23199 page_compression flag is missing for ... Closed
relates to MDEV-27091 log_phys_t::apply_status log_phys_t::... Open
relates to MDEV-28168 Compressed page is read for non-compr... Confirmed
relates to MDEV-12026 Support encrypted SPATIAL INDEX Closed

 Description   

Allow compressed page in full_crc32 format. The format of full_crc32 is also follows:

  • Set the MSB of FIL_PAGE_TYPE as 1 for compressed page
  • Allocate the 10 bits for storing compressed (length + (4 + 63)) / 64. The 4 extra bytes are for storing the checksum over the compressed (and optionally encrypted) stream. The checksum would be stored in the last 4 bytes of a 64-byte aligned block.

FSP_SPACE_FLAGS already contains COMPRESSED_PAGE_ALGORITHM. So that InnoDB shouldn't allow the tablespace to open if particular algorithm is not supported.

The following should be fixed as part of this task:

  • ha_innobase::check_if_supported_inplace_alter() must allow instant change of page_compressed=1
  • buf_dblwr_check_page_lsn() must evaluate fil_space_t::full_crc32()
  • More use of #define FIL_* or #define FSP_ should be replaced with inline member functions of fil_space_t


 Comments   
Comment by Thirunarayanan Balathandayuthapani [ 2019-03-13 ]

patch is in bb-10.4-MDEV-12026.

Comment by Marko Mäkelä [ 2019-03-15 ]

I pushed some fixes and cleanup to the branch. Once we get QA approval, I will squash to 1 commit and push to 10.4.

Generated at Thu Feb 08 08:45:40 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.