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

Proposal to implement a more efficient webserver shutdown strategy #5876

Merged
merged 8 commits into from
Jan 27, 2023

Conversation

spericas
Copy link
Member

@spericas spericas commented Jan 17, 2023

Proposal to implement a more efficient webserver shutdown strategy for Nima. For more information see issue #5717. This approach is based on that described in PR #5748. It includes a simple executor SPI for tasks that are immediately interruptable, such as those waiting to read connection preambles. Some new tests that verify faster webserver shutdown.

The core of this solution is credited to Rob Bygrave (@rbygrave).

@spericas spericas added enhancement New feature or request webserver 4.x Version 4.x labels Jan 17, 2023
@spericas spericas added this to the 4.0.0 milestone Jan 17, 2023
@spericas spericas self-assigned this Jan 17, 2023
@oracle-contributor-agreement oracle-contributor-agreement bot added the OCA Verified All contributors have signed the Oracle Contributor Agreement. label Jan 17, 2023
@spericas spericas marked this pull request as draft January 17, 2023 16:45
@spericas spericas requested a review from tomas-langer January 19, 2023 15:28
…or more information see issue helidon-io#5717. This approach is based on that described in PR helidon-io#5748. It includes a simple executor SPI for tasks that are immediately interruptable, such as those waiting to read connection preambles. Some new tests that verify faster webserver shutdown.
Signed-off-by: Santiago Pericasgeertsen <santiago.pericasgeertsen@oracle.com>
Signed-off-by: Santiago Pericasgeertsen <santiago.pericasgeertsen@oracle.com>
@spericas spericas marked this pull request as ready for review January 19, 2023 15:54
Signed-off-by: Santiago Pericasgeertsen <santiago.pericasgeertsen@oracle.com>
Signed-off-by: Santiago Pericasgeertsen <santiago.pericasgeertsen@oracle.com>
Signed-off-by: Santiago Pericasgeertsen <santiago.pericasgeertsen@oracle.com>
Signed-off-by: Santiago Pericasgeertsen <santiago.pericasgeertsen@oracle.com>
@spericas
Copy link
Member Author

spericas commented Jan 25, 2023

@tomas-langer Verified that there is no impact on performance using plaintext.

results-with-no-fix.zip

results-with-fix.zip

@spericas spericas requested a review from tomas-langer January 25, 2023 20:08
Signed-off-by: Santiago Pericasgeertsen <santiago.pericasgeertsen@oracle.com>
@spericas spericas merged commit 64d5f73 into helidon-io:main Jan 27, 2023
*
* @param <T> type of value returned by task
*/
public interface InterruptableTask<T> extends Runnable, Callable<T> {
Copy link
Member

Choose a reason for hiding this comment

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

Misspelled; should be Interruptible

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
4.x Version 4.x enhancement New feature or request OCA Verified All contributors have signed the Oracle Contributor Agreement. performance webserver
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

4 participants