-
Notifications
You must be signed in to change notification settings - Fork 39
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Reduce latency in the network stack #277
Reduce latency in the network stack #277
Conversation
ac454bf
to
b7bcc69
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, this mostly looks good, just a few small comments about some things that look suspicious. To confirm, you've run rustfmt
on the changes using the Git hook, right?
I haven't run the code through |
The TZ failure seems spurious, but the Linux and IceCap failures seem to be a bug in the changeset: before calling |
(In light of that, I'm going to unapproved this until the issue is fixed.) |
Unapproved due to bug in code coming to light during CI runs.
I noticed the tests failing. |
@gbryant-arm what's happening with this PR? |
It's been successfully integrated to the experimental benchmarking branch but it's on hold until I find time to spend on code quality |
What's the status of this PR, @gbryant-arm? Are you going to come back to it, or is it now defunct? |
This PR is still active. It needs some refactoring though. |
Converting this to a draft until it's in a fit state for review... |
cbc2ad5
to
d0f2352
Compare
…erRequest` until fully received by the runtime manager The `RuntimeManagerRequest` protocol buffers are prefixed by their length so that the runtime manager can tell when the data transfer is complete. This dramatically increases provisioning throughput, as the runtime manager would otherwise try to deserialize the incoming buffer for every new chunk received, taking longer and longer as the buffer grows.
…nux backend only) This reduces latency by sending packets immediately instead of buffering them
Extend prefixing to runtime manager and proxy attestation server messages
Change API by introducing a session id to be passed to the parsing functions to distinguish messages being received concurrently Add documentation
6106f5d
to
5d8557d
Compare
The benchmarks validated the changes. File transfer is somehow ~ 2s faster on vc-linux |
+1 reached, merging. |
Reduce latency in the network stack, specifically on the runtime manager and client sides.
Note that a high latency between the client and server will still have a big impact on throughput, as 16KB protobuf fragments –split by TLS – are still sent between the client and runtime manager one by one.
The obvious solution is to remove HTTP on the client/server side and replace it with a plain TCP repeater.
Other ideas:
All these suggestions are however out of the scope of this PR.
TODO: