On Mon, Mar 14, 2022 at 09:41:35PM +0530, Dipesh Pandit wrote: > I tried to implement support for parallel ZSTD compression. The > library provides an option (ZSTD_c_nbWorkers) to specify the > number of compression workers. The number of parallel > workers can be set as part of compression parameter and if this > option is specified then the library performs parallel compression > based on the specified number of workers. > > User can specify the number of parallel worker as part of > --compress option by appending an integer value after at sign (@). > (-Z, --compress=[{client|server}-]{gzip|lz4|zstd}[:LEVEL][@WORKERS])
I suggest to use a syntax that's more general than that, maybe something like :[level=]N,parallel=N,flag,flag,... For example, someone may want to use zstd "long" mode or (when it's released) rsyncable mode, or specify fine-grained compression parameters (strategy, windowLog, hashLog, etc). I hope the same syntax will be shared with wal_compression and pg_dump. And libpq, if that patch progresses. BTW, I think this may be better left for PG16. -- Justin