Add virtual thread attribute to WsWebSocketContainer#936
Draft
adj5672 wants to merge 3 commits intoapache:mainfrom
Draft
Add virtual thread attribute to WsWebSocketContainer#936adj5672 wants to merge 3 commits intoapache:mainfrom
adj5672 wants to merge 3 commits intoapache:mainfrom
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
In my app, I use WsWebSocketContainer to create websocket client.
As the number of sessions increases, memory usage also increased. So "OOM Killed" occured frequently.
I know that It is a normal situation in thread-per-connection model which is current applied.
Current model have advantage that It is very intuitive and sometimes it behaves like kind of rate limiter.
But I think that threads for R/W may not working busy in some case.
Also platform thread will be created twice of session count and it allocate a lot of default stack memory.
furthermore context switching cost expensive too when using platform thread.
So I think that instead of create two platform thread per session, using virtual thread will be helpful in some cases.
Since I may not understand overall about websocket codes and architecture, I just create draft pull request.
Adding choice to use virtual threads would be helpful for optimizing memory usage.