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

[Feature Request] Compressing HTTP requests with LZ4 and other compression algorithms #14860

Open
adityamohan93 opened this issue Jul 22, 2024 · 2 comments
Labels
enhancement Enhancement or improvement to existing feature or request Search:Performance

Comments

@adityamohan93
Copy link

Is your feature request related to a problem? Please describe

OpenSearch service supports only gzip for compressing HTTP requests. My team runs low latency systems and for Redis, we have seen LZ4 provides lower compression/decompression time at higher throughput and lower latency for over the wire transfers compared to gzip and deflate.

Describe the solution you'd like

OpenSearch be modified to support LZ4 also for HTTP requests. I see it's used as default codec for storing index, so we should also consider it for compression for request/response.

Related component

Search:Performance

Describe alternatives you've considered

No response

Additional context

No response

@adityamohan93 adityamohan93 added enhancement Enhancement or improvement to existing feature or request untriaged labels Jul 22, 2024
@mch2 mch2 removed the untriaged label Jul 24, 2024
@mch2
Copy link
Member

mch2 commented Jul 24, 2024

Related - #10684. Curious what the perf comparison would be here with protobuf?

@adityamohan93
Copy link
Author

adityamohan93 commented Aug 19, 2024

@mch2 Protobuf and LZ4 are different things. I have seen LZ4 compression used on top of Protobuf in my org and it improves the results. Compression works better when there are duplicate fields and data in the object being transferred which is always the case with OpenSearch response which contains a bunch of documents with same field names and in some cases have similar or same field values. Protobuf is a binary replacement for JSON formatting while LZ4 is a faster compression replacement for GZIP. Whether OpenSearch adds support for Protobuf/gRPC or not, the decision of adding LZ4 support runs in parallel and would benefit regardless.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Enhancement or improvement to existing feature or request Search:Performance
Projects
Status: Next (Next Quarter)
Development

No branches or pull requests

2 participants