Re: Different compression methods for FPI
x4mmm@yandex-team.ru
From: Andrey Borodin <x4mmm@yandex-team.ru>
To: Michael Paquier <michael@paquier.xyz>
Cc: Justin Pryzby <pryzby@telsasoft.com>,
pgsql-hackers <pgsql-hackers@postgresql.org>,
Thomas Munro <thomas.munro@gmail.com>
Date: 2021-05-31T07:33:44Z
Lists: pgsql-hackers
> 25 мая 2021 г., в 12:26, Michael Paquier <michael@paquier.xyz> написал(а): > > On Mon, May 24, 2021 at 11:44:45PM -0500, Justin Pryzby wrote: >> The goal is to support 2+ "methods" (including "none"), which takes 4 bits, so >> may as well support 3 methods. >> >> - uncompressed >> - pglz >> - lz4 >> - zlib or zstd or ?? > > Let's make a proper study of all that and make a choice, the only > thing I am rather sure of is that pglz is bad compared to all the > others. There is no point to argue as long as we don't know if any of > those candidates are suited for the job. There's a lot of open studies like [0,1]. In short, Lz4 is fastest codec. Zstd gives better compression at cost of more CPU usage[2]. Zlib is not tied to Facebook, however, it's slower and have smaller compression ratio than Zstd. Zstd is actively developed. There is Google's Brotli codec. It is comparable to Zstd. What kind of deeper study do we want to do? Would it make sense to run our own benchmarks? Or, perhaps, review other codecs? In my opinion, anything that is sent over network or written to block storage deserves Zstd-5 compression. But milage may vary. Thanks! Best regards, Andrey Borodin. [0] https://indico.cern.ch/event/695984/contributions/2872933/attachments/1590457/2516802/ZSTD_and_ZLIB_Updates_-_January_20186.pdf [1] https://facebook.github.io/zstd/ [2] Zstd gives significantly better compression at cost of little more CPU usage. But they both have points on Pareto frontier.
Commits
-
Add more error context to RestoreBlockImage() and consume it
- 0a7c9ee50062 15.0 landed
- df4a056619a7 16.0 landed
-
Add support for LZ4 with compression of full-page writes in WAL
- 4035cd5d4eee 15.0 landed
-
Extended statistics on expressions
- a4d75c86bf15 14.0 cited
-
Be clear about whether a recovery pause has taken effect.
- 32fd2b57d7f6 14.0 cited
-
Add GUC to enable compression of full page images stored in WAL.
- 57aa5b2bb11a 9.5.0 cited