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

Choose RPC framework #3

Closed
haircommander opened this issue Nov 3, 2021 · 5 comments
Closed

Choose RPC framework #3

haircommander opened this issue Nov 3, 2021 · 5 comments

Comments

@haircommander
Copy link
Collaborator

there are tons of RPC frameworks to choose from. we've flirted with the idea of grpc, ttrpc, cap n proto. we should probably just pick one. any other ideas?

@saschagrunert
Copy link
Member

I think tonic via unix domain sockets and golang GRPC is still broken due to hyperium/h2#487, but we have to give it a try.

@mrunalp
Copy link
Contributor

mrunalp commented Nov 4, 2021

One worry I have is about the binary size and the memory usage. I opened a PR #4 to set some flags during build time. I think if we stay under 4MB RSS that may be okay if we run one conmon for a pod.

@rphillips
Copy link
Collaborator

I took a look at the server and see it using 3.0 MB RSS in release mode. Removing Tonic decreases RSS to 1 MB (still using tokio). Perhaps it does make sense to find something lighter weight.

@saschagrunert
Copy link
Member

saschagrunert commented Nov 8, 2021

I was playing around with cap'n proto and indeed it seems to use less memory. But switching to the single threaded grpc (tonic) variant saves even more memory: #9

@saschagrunert
Copy link
Member

I think we can close this one now and stick with tonic. I'll add a CI job to compare the used RSS of PRs.

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

No branches or pull requests

4 participants