Skip to content

switch interserver protocol to use postcard#922

Open
svix-jbrown wants to merge 2 commits intomainfrom
jbrown/interserver-pc
Open

switch interserver protocol to use postcard#922
svix-jbrown wants to merge 2 commits intomainfrom
jbrown/interserver-pc

Conversation

@svix-jbrown
Copy link
Copy Markdown
Contributor

FWIW, I don't think the proposal in svix/rfc#54 will work very well for interserver messages (since they contain the union of all modules' operation messages). Actually doing this correctly will be rather hard (because, e.g., the "version" of an AppendEntries message is going to be the union of all of the versions of the underlying requests). Right now, this will just make the cluster break extremely un-gracefully if we ever change any operation definition. It's also not meaningfully faster, since the actual network time dominates the msgpack time. Anywho, here it is as requested.

@svix-jbrown svix-jbrown requested a review from a team April 10, 2026 00:08
@svix-jbrown svix-jbrown requested a review from a team as a code owner April 10, 2026 00:08
@github-actions
Copy link
Copy Markdown

github-actions bot commented Apr 10, 2026

TestsPassed ✅SkippedFailedTime ⏱
Diom CI JUnit262 ran262 passed0 skipped0 failed6m 21s 347ms
TestResultTime ⏱
No test annotations available

@github-actions
Copy link
Copy Markdown

github-actions bot commented Apr 10, 2026

Test Coverage: 81.26%

Artifact download

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.

I know we discussed on the call and said that since we serialize the operations to log, and we pass logs here, the concerns raised by this PR are already the case, no? (we already have the danger around operations).
Maybe worth updating the PR description with this information?

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.

Maybe a better name than postcard_? (as in, the trailing _)

let req = self
.build_request("/repl/raft/vote", rpc)
.with_timeout(option.soft_ttl())
.with_format(Format::Msgpack);
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.

Why is this one using msgpack and others postcard?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

all the things that are low-volume use msgpack (it's the default; this one just calls it out explicitly because it's also overriding the TTL)

@svix-jplatte
Copy link
Copy Markdown
Member

We've run the experiment and learned what we wanted to learn, right? Can be closed?

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