Skip to content

object: Allow header with payload chunk in first GET response message#333

Open
cthulhu-rider wants to merge 1 commit into
masterfrom
get-one-message
Open

object: Allow header with payload chunk in first GET response message#333
cthulhu-rider wants to merge 1 commit into
masterfrom
get-one-message

Conversation

@cthulhu-rider

@cthulhu-rider cthulhu-rider commented Jun 17, 2025

Copy link
Copy Markdown
Contributor

here's an option through the proto version. It will work on the wire. The only other alternative I see is a new GetV2 call which is more demanding of support

Previously, heading and chunk fields were mutually exclusive in each GET
response message. With this, server sent 1st message with the header
only, then messages with payload chunks came. This behavior is
inefficient since any object with a non-empty payload requires one more
message. The smaller the payload, the greater the overhead.

This modifies GET protocol to allow header and chunk to be attached to
the same message. For backward compatibility, requests from older
clients will be processed as before.

Signed-off-by: Leonard Lyubich <leonard@morphbits.io>
@roman-khimov

Copy link
Copy Markdown
Member

Let's get more isolated statistics for this change. It should give us something real in tests or otherwise it doesn't worth the change and versioning complexity.

@cthulhu-rider

Copy link
Copy Markdown
Contributor Author

@carpawell carpawell left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Do we have any load updates on it?

@roman-khimov

Copy link
Copy Markdown
Member

All of the old data suggests that it's irrelevant. But it should be tried again, 4K perf has changed seriously and we also have EC now that is different in some cases.

@carpawell

Copy link
Copy Markdown
Member

I dont like the idea of such changes in API, but it is faster, we should consider it.

@roman-khimov

Copy link
Copy Markdown
Member

The API change can be made compatible by introducing another type for oneof.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants