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 LZ4 Compression Support for PostgreSQL #11504

Open
wants to merge 4 commits into
base: 3.0
Choose a base branch
from

Conversation

udsmicrosoft
Copy link

@udsmicrosoft udsmicrosoft commented Dec 17, 2024

Merge Checklist

All boxes should be checked before merging the PR (just tick any boxes which don't apply to this PR)

  • The toolchain has been rebuilt successfully (or no changes were made to it)
  • The toolchain/worker package manifests are up-to-date
  • Any updated packages successfully build (or no packages were changed)
  • Packages depending on static components modified in this PR (Golang, *-static subpackages, etc.) have had their Release tag incremented.
  • Package tests (%check section) have been verified with RUN_CHECK=y for existing SPEC files, or added to new SPEC files
  • All package sources are available
  • cgmanifest files are up-to-date and sorted (./cgmanifest.json, ./toolkit/scripts/toolchain/cgmanifest.json, .github/workflows/cgmanifest.json)
  • LICENSE-MAP files are up-to-date (./LICENSES-AND-NOTICES/SPECS/data/licenses.json, ./LICENSES-AND-NOTICES/SPECS/LICENSES-MAP.md, ./LICENSES-AND-NOTICES/SPECS/LICENSE-EXCEPTIONS.PHOTON)
  • All source files have up-to-date hashes in the *.signatures.json files
  • sudo make go-tidy-all and sudo make go-test-coverage pass
  • Documentation has been updated to match any changes to the build system
  • Ready to merge

Summary

What does the PR accomplish, why was it needed?

This is to enable the toast compression in Postgres: https://www.postgresql.org/docs/current/runtime-config-client.html#GUC-DEFAULT-TOAST-COMPRESSION — they offer to set lz4 but only when it’s been enabled at compile time.

TOAST compression is for objects larger than 2KB stored in the DB (e.g. json documents) and the lz4 compression is more performant while requiring less space.

This is a simple change with huge perf impact for people using it (needed for Azure Cosmos DB On-prem/Emulator).

Change Log
  • Change
  • Change
  • Change
Does this affect the toolchain?

YES/NO

Associated issues
  • #xxxx
Links to CVEs
Test Methodology

@microsoft-github-policy-service microsoft-github-policy-service bot added the 3.0 PRs Destined for 3.0 label Jan 15, 2025
@jslobodzian jslobodzian requested a review from rikenm1 January 15, 2025 22:14
Copy link
Contributor

@rikenm1 rikenm1 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

buddybuild looks good. I am approving this. The other PR checks are failing because the PR check is coming from the fork instead of a topic branch.

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

Successfully merging this pull request may close these issues.

3 participants