postgres: do not copy and linearize received data when it is not going to be used#13393
Merged
mattklein123 merged 10 commits intoenvoyproxy:masterfrom Oct 16, 2020
Merged
postgres: do not copy and linearize received data when it is not going to be used#13393mattklein123 merged 10 commits intoenvoyproxy:masterfrom
mattklein123 merged 10 commits intoenvoyproxy:masterfrom
Conversation
going to be processed. Signed-off-by: Christoph Pakulski <christoph@tetrate.io>
Signed-off-by: Christoph Pakulski <christoph@tetrate.io>
dio
reviewed
Oct 6, 2020
Buffer::linearize when received message is not used for processing. Signed-off-by: Christoph Pakulski <christoph@tetrate.io>
Signed-off-by: Christoph Pakulski <christoph@tetrate.io>
Signed-off-by: Christoph Pakulski <christoph@tetrate.io>
Member
|
Looks good. Asking help from @zuercher for senior maintainer review. Thanks! |
Member
|
Thanks, @zuercher! @cpakulski, sorry, seems like docs build is hanging. See if merging main could help. |
Signed-off-by: Christoph Pakulski <christoph@tetrate.io>
Signed-off-by: Christoph Pakulski <christoph@tetrate.io>
…nce). Signed-off-by: Christoph Pakulski <christoph@tetrate.io>
Signed-off-by: Christoph Pakulski <christoph@tetrate.io>
Contributor
Author
|
@zuercher I need your "lgtm" again. Nothing really changed from the last review. I had to remove one mock method because it was removed from the base class. Thanks! |
zuercher
approved these changes
Oct 15, 2020
Member
|
/retest |
|
Retrying Azure Pipelines, to retry CircleCI checks, use |
Signed-off-by: Christoph Pakulski <christoph@tetrate.io>
Member
|
/retest |
|
Retrying Azure Pipelines, to retry CircleCI checks, use |
mpuncel
added a commit
to mpuncel/envoy
that referenced
this pull request
Oct 17, 2020
* master: (22 commits) delay health checks until transport socket secrets are ready. (envoyproxy#13516) test, oauth2: Make sure config test runs field validation (envoyproxy#13496) [http] swap codec implementations to default new (envoyproxy#13579) wasm: update proxy-wasm-cpp-host (envoyproxy#13606) postgres: do not copy and linearize received data when it is not going to be used (envoyproxy#13393) configs: Update configs v2 -> v3 (envoyproxy#13562) http2: Remove RELEASE_ASSERTs in sendPendingFrames() error handling (envoyproxy#13546) dependencies: track untracked implied dependencies, wrapup dashboard. (envoyproxy#13571) listener: add match all filter chain (envoyproxy#13449) fix mistakes in docstrings (envoyproxy#13603) ratelimit: add route entry metadata to ratelimit actions (envoyproxy#13269) cluster manager: avoid immediate activation for dynamic inserted cluster when initialize (envoyproxy#12783) ext_authz: Avoid calling check multiple times (envoyproxy#13288) docs: Unexclude remaining configs from validation (envoyproxy#13534) build: update rules_rust to allow Rustc in RBE (envoyproxy#13595) docs: Update sphinxext.rediraffe (envoyproxy#13589) Deprecate moonjit support on Windows before beta (envoyproxy#13541) dependencies: bump LuaJIT to 2.1 branch HEAD @ e9af1ab. (envoyproxy#13474) docs: add TLS stats to cluster stats doc (envoyproxy#13561) ci: stop building alpine-debug images in favor of ubuntu-based debug image (envoyproxy#13598) ... Signed-off-by: Michael Puncel <mpuncel@squareup.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Commit Message:
When the decoder analyzes postgres messages in order to produce statistics, the message body needs to be linearized and copied to the internal buffer.
From around 40 types of postgres messages, only about 8-10 are used to produce stats, but linearization and copying to internal buffer was done for all messages. Code in this PR checks if linearization and copying is needed.
Also, after linearization, the decoder stored the linearized message until the next message arrived instead of releasing the memory immediately after processing. Code in this PR releases memory after the message has been processed.
Additional Description:
Risk Level: Low
Testing: Adjusted unit test to verify that memory is released after processing the message.
Docs Changes: No
Release Notes: No
[Optional Runtime guard:]
[Optional Fixes #Issue]
[Optional Deprecated:]