Details
-
Task
-
Status: Open (View Workflow)
-
Major
-
Resolution: Unresolved
-
None
-
None
Description
In page compression, currently the page is compressed and written currently like this
1) page is compressed to size compressed_size
2.a) If trim is used, compressed_size(aligned to file block size) is written. After that, hole is punched after the end of page, of the size (page_size - compressed_size)
b) If trim is not used, single write is done of the full page size (it is padded from compressed_size to the full size with binary zeros)
a) or b) are done every time a page is written. But in many cases, used portion of the page (aka compressed_size) will grow ,as compared to previous page state. In those cases, there is no need to trim already trimmed region, or write binary zeroes over binary zeroes. A small write, of compressed_size would suffice. The small writes can contribute to longer SSD life (if trim is not used), and just reduce the overall written size and improve performance otherwise.
Attachments
Issue Links
- is blocked by
-
MDEV-18644 Support FULL_CRC32 for compressed pages.
- Closed
- relates to
-
MDEV-16526 Overhaul the InnoDB page flushing
- Closed
-
MDEV-11068 Review which innodb_compression_algorithm to support in binary packages
- Closed