Skip to content

Conversation

AhmedSoliman
Copy link
Contributor

@AhmedSoliman AhmedSoliman commented May 1, 2025

Other changes:

  • Smaller EgressMessages by using static string for message names, removing span for unary messages (224 bytes -> 216 bytes)
  • ReplyRx doesn't require protocol version at creation time, this will become relevant in a subsequent PR. The protocol version is now returned along with the reply when it arrives

Stack created with Sapling. Best reviewed with ReviewStack.

Copy link

github-actions bot commented May 1, 2025

Test Results

  7 files  ±0    7 suites  ±0   4m 56s ⏱️ -3s
 54 tests ±0   53 ✅ ±0  1 💤 ±0  0 ❌ ±0 
223 runs  ±0  220 ✅ ±0  3 💤 ±0  0 ❌ ±0 

Results for commit 3ffe24e. ± Comparison against base commit 0fe0c42.

♻️ This comment has been updated with latest results.

@AhmedSoliman AhmedSoliman marked this pull request as ready for review May 1, 2025 08:30
@AhmedSoliman AhmedSoliman requested a review from tillrohrmann May 1, 2025 08:30
@AhmedSoliman AhmedSoliman force-pushed the pr3213 branch 3 times, most recently from 346b420 to 7fa13e4 Compare May 2, 2025 07:02
Copy link
Contributor

@tillrohrmann tillrohrmann left a comment

Choose a reason for hiding this comment

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

Thanks for creating this PR @AhmedSoliman. The changes look good to me. I only had a question regarding the motivation for removing the originating span for unary calls. Couldn't it be helpful for tracing where messages came from?

#[cfg(feature = "test-util")]
header: custom_header,
})) => {
let mut header = Header::default();
self.fill_header(&mut header, span);
self.fill_header(&mut header, None);
Copy link
Contributor

Choose a reason for hiding this comment

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

Are we primarily not sending the originating span to save some bytes? Are those the 8 bytes that we are saving? Couldn't it be helpful for tracing when trying to understand where messages came from?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

In fact, at the moment distributed tracing for the message fabric is disabled, but when we enable it back, I believe that the majority of the value will come from tracing RPC operation rather than unary messages. Unary messages are meant to be lightweight and fast (fire-and-forget).

In addition, this is not a one way decision, it doesn't break compatibility to add this back in a future version if we want.

It's worth noting that the saved bytes also come from swapping the String with the &'static str.

Other changes:
- Smaller EgressMessages by using static string for message names, removing span for unary messages (224 bytes -> 216 bytes)
- ReplyRx doesn't require protocol version at creation time, this will become relevant in a subsequent PR. The protocol version is now returned along with the reply when it arrives
@AhmedSoliman AhmedSoliman merged commit 3ffe24e into main May 6, 2025
51 checks passed
@AhmedSoliman AhmedSoliman deleted the pr3213 branch May 6, 2025 11:02
@github-actions github-actions bot locked and limited conversation to collaborators May 6, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants