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

Concurrent JS5 Implementation #36

Open
Z-Kris opened this issue Oct 3, 2024 · 0 comments
Open

Concurrent JS5 Implementation #36

Z-Kris opened this issue Oct 3, 2024 · 0 comments
Assignees
Labels
documentation Improvements or additions to documentation

Comments

@Z-Kris
Copy link
Contributor

Z-Kris commented Oct 3, 2024

Our current JS5 implementation relies on one worker thread to respond to all the JS5 requests. While the work itself is light-weight and should never cause problems, we do have the issue of synchronization being used when passing information from Netty threads to the JS5 service. This synchronization is very short-lived and shouldn't cause issues, but it probably does cost us some performance. For reference, many of the so-called concurrent data structures in Java actually rely on short-lived synchronization, which isn't inherently bad, but it can cost us some performance.

As such, we should look into options of doing JS5 completely concurrently, without ever blocking Netty in that. This will be complicated to implement, at least in a manner where everyone is served equally as our current system providers, but it could result in a little better overall performance in some extreme edge cases. This new system would be marked as experimental and would be opt-in. The old system should always remain available, even once this new system is no longer experimental, should people prefer this style, as it will likely still remain more fair than a concurrent one.

@Z-Kris Z-Kris added the documentation Improvements or additions to documentation label Oct 3, 2024
@Z-Kris Z-Kris self-assigned this Oct 3, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Projects
None yet
Development

No branches or pull requests

1 participant