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

Evaluate the new Erlang 23+ socket module #4739

Open
nickva opened this issue Aug 24, 2023 · 0 comments
Open

Evaluate the new Erlang 23+ socket module #4739

nickva opened this issue Aug 24, 2023 · 0 comments

Comments

@nickva
Copy link
Contributor

nickva commented Aug 24, 2023

There is a new NIF-based socket backend starting with Erlang 23. It might provide some benefits such as faster / lower latency connections and allow us to inspect connection state easier as there are more options/flags we can pass to recv/send calls.

It's easy enough to experiment with it by toggling: -kernel inet_backend socket in vm.args so it can be experimented with an already existing package/release.

There are however some differences as the implementation are not 100% compatible.. It involves corner cases of how closed connects are detected, how send may block vs not-block, etc.

The idea is that it might be worth at some point switching to it as the default. Before switching to it as the default we'd have to ensure the CI passes, benchmark it, and ideally a track record someone trying it out long enough on a large enough workload sample.

An example full CI run on a variety of os/platforms we support. It seems to pass the CI test well:

Screen Shot 2023-08-24 at 11 36 10 AM

(.deb packages currently fail for an unrelated reason)

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

1 participant