opensearch-project / opensearch-project/custom-codecs
[FEATURE] Hybrid Compression with Zstandard Codecs
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 14
- Forks
- 29
- Avg merge
- 3h 38m
- Merged PRs (30d)
- 7
Description
Is your feature request related to a problem?
Coming here from https://github.com/opensearch-project/OpenSearch/issues/11605#issuecomment-2046521026
We are observing good benefits from enabling Hybrid Compression during merges with default codec. That being said, I believe we would see more benefits with Zstandard since it has much better compression ratio that default codec, so the trade offs on disk throughput / iops should be reduced.
Since we would not need to introduce a new codec to implement hybrid compression with Zstandard, I propose to have an opt in settings that allows users to manage the thresholds for hybrid compression.
What solution would you like?
Hybrid Compression for Zstandard where the recently added stored fields are not compressed, which enables faster indexing, look ups for recent documents, but the stored fields are compressed upon merges.
Do you have any additional context?
Detailed Description: https://github.com/opensearch-project/OpenSearch/issues/13110
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading the linked OpenSearch issues 11605 and 13110, then inspect the existing hybrid-compression implementation in this custom-codecs repository. The issue names no files or tests; done means an opt-in Zstandard hybrid-compression setting supports configurable thresholds and compresses recently added stored fields during merges.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- search
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100