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

add socket-load-balance flag #2472

Draft
wants to merge 13 commits into
base: master
Choose a base branch
from
Draft

add socket-load-balance flag #2472

wants to merge 13 commits into from

Conversation

graingert
Copy link
Member

@graingert graingert commented Sep 29, 2024

Summary

Fixes #2467

Checklist

  • I understand that this PR may be closed in case there was no previous discussion. (This doesn't apply to typos!)
  • I've added a test for each change that was introduced, and I tried as much as possible to make a single atomic change.
  • I've updated the documentation accordingly.

def get(self) -> socket.socket:
return self._sock

if (sys.platform == "linux" and hasattr(socket, "SO_REUSEPORT")) or hasattr(socket, "SO_REUSEPORT_LB"):
Copy link
Member Author

Choose a reason for hiding this comment

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

Copy link
Sponsor Member

@Kludex Kludex left a comment

Choose a reason for hiding this comment

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

Why do we need to add a new argument i.e. socket-load-balance? Can't this behavior be the default? I'd assume people already thinks that's the default.

@graingert
Copy link
Member Author

There's a tradeoff where the default unfair load balancing favours lower latency and the SO_REUSEPORT(_LB) approach favours an even load between processes

I suspect most people do want the fair load balancing, however I think it should bed in a bit before we suddenly turn it on by default for everyone.

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

Successfully merging this pull request may close these issues.

2 participants