Skip to content
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

Port to Hyper 1.0 #96

Closed
12 tasks done
Tracked by #35
slinkydeveloper opened this issue Feb 17, 2023 · 8 comments
Closed
12 tasks done
Tracked by #35

Port to Hyper 1.0 #96

slinkydeveloper opened this issue Feb 17, 2023 · 8 comments
Assignees

Comments

@slinkydeveloper
Copy link
Contributor

slinkydeveloper commented Feb 17, 2023

@slinkydeveloper slinkydeveloper mentioned this issue Feb 17, 2023
@slinkydeveloper slinkydeveloper added invoker needs-refinement Issues that need further investigation labels Feb 17, 2023
@slinkydeveloper
Copy link
Contributor Author

When porting to hyper 1.0, we should remove the task spawn within the InvocationTask that drives the connection forward.

This was referenced Feb 17, 2023
@slinkydeveloper
Copy link
Contributor Author

Also need to keep track of rustls/hyper-rustls#192

@tillrohrmann tillrohrmann added this to the 1A milestone Mar 21, 2023
@slinkydeveloper slinkydeveloper modified the milestones: 1A, 1B Apr 17, 2023
@slinkydeveloper
Copy link
Contributor Author

Very relevant PR here: hyperium/hyper#3155

@slinkydeveloper slinkydeveloper removed the needs-refinement Issues that need further investigation label Jun 21, 2023
@slinkydeveloper slinkydeveloper removed this from the 1B milestone Jun 21, 2023
@slinkydeveloper
Copy link
Contributor Author

slinkydeveloper commented Jul 18, 2023

With version 0.14.25 we can start using the new 1.0 APIs, which hopefully will make the transition smoother: https://github.com/hyperium/hyper/releases/tag/v0.14.25

@slinkydeveloper
Copy link
Contributor Author

hyper 1.0 has been released, and hyper-util as well. We need the hyper-rustls and then we can start

@tillrohrmann
Copy link
Contributor

In my latest performance measurements, I noticed that the main bottleneck seems to be the invoker currently (the ingress is also causing high CPU load but does not seem be the limiting factor). One thing I noticed in the flamegraphs is that hyper requires a lot of CPU cycles when polling the Body. I haven't found the reason for this problem but it could be that there is some contention on the single TCP connection that the invoker currently uses when talking to the service deployment.

I hope that by upgrading to Hyper 1.1 we will manage to remove the bottleneck from the server.

@slinkydeveloper
Copy link
Contributor Author

To upgrade to hyper 1.0 we still need hyper-rustls to be released with rustls/hyper-rustls#232

@tillrohrmann
Copy link
Contributor

completed 🎉

slinkydeveloper added a commit to slinkydeveloper/restate that referenced this issue Sep 27, 2024
…60bf51

65560bf51 Add CancelInvocation and GetCallInvocationId entries. (restatedev#96)
0d6b476ea Update retry count comment

git-subtree-dir: crates/types/service-protocol
git-subtree-split: 65560bf51eb0cb2b5be6c61e0c308221afe6091e
slinkydeveloper added a commit that referenced this issue Sep 27, 2024
…60bf51

65560bf51 Add CancelInvocation and GetCallInvocationId entries. (#96)
0d6b476ea Update retry count comment

git-subtree-dir: crates/types/service-protocol
git-subtree-split: 65560bf51eb0cb2b5be6c61e0c308221afe6091e
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants