|
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.
|