envoyproxy / envoyproxy/envoy

Lazy evaluation of compression decision in compressor_filter for http response w/o content-length

Open
#21,807 4 comments 0 reactions 0 assignees View on GitHub
area/compression help wanted
Dominant language
C++
Stars
28.9k
Forks
5.6k
Avg merge
1d 20h
Merged PRs (30d)
428

Description

**If you are reporting *any* crash or *any* potential security issue, *do not*
open an issue in this repo. Please report the issue via emailing
envoy-security@googlegroups.com where the issue will be triaged appropriately.**

*Title*: *One line description*
Buffer response header in **compressor_filter** and perform compression decision when receiving first data frame (encode_data)

*Description*:
>Describe the issue.

Snap leverages on **compressor_filter** to perform response compression for gRPC responses. gRPC server doesnt add **content-length** to response header that the compressor filter will compress small response payload as well , which causes some overhead in egress bandwidth.

What Snap does(already running in prod env) is to perform a lazy evaluation when receiving first data frame instead of buffering all data frames.

Snap want to seek some feedback from envoy community that
1. this operation is feasible (Snap can create a draft PR to review later)
2. upstream the change to envoy

[optional *Relevant Links*:]
>Any extra documentation required to understand the issue.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.