Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add zstd compression via command line utility only. #266

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

dkacar-oradian
Copy link
Contributor

Zstd is a lot faster than gzip or bzip2, so it should be an option. This patch adds zstd compression via command line utility only because I don't know what's the policy on dependencies to external python libraries. I'm guessing it's not very desirable.

Currently zstd (or any other) compression can be used via custom compression setting, but there's a race problem with that. It seems (to me) that when custom compression is turned on all unidentified WAL files are treated as compressed with custom compression. However, files which are still in the streaming directory aren't compressed at all. So if a client requests them (my clients do, this is not theoretical) then the decompression utility spits an error and Postgres doesn't start.

So I'd like to add zstd compression as a first class citizen.

@artizirk
Copy link

artizirk commented Aug 6, 2024

Custom compression bug referenced here seems to be fixed in #588 but native zstd support would still be nice to have.

@martinmarques
Copy link
Contributor

@dkacar-oradian could you rebase this on top of master?

@martinmarques
Copy link
Contributor

We have a few internal stories that work on adding new compression algorithms, but we want to deliver them to the cloud and the on-prem barman archiver. This PR solves half of the feature

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants