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

Implementation of MP FT over Nima VTs #5271

Merged
merged 15 commits into from
Nov 2, 2022
Merged

Conversation

spericas
Copy link
Member

@spericas spericas commented Oct 27, 2022

In this PR:

  • New core implementation of MP FT using Nima's FT module VTs
  • New logic for task cancellations and thread interruptions
  • New handling of TimeoutException and RetryTimeoutException
  • Special case of bean methods that return a Future<?> that is not a CompletionStage<?> as required by TCKs
  • Fixed problem in Nima's circuit breaker implementation related to rolling window and a successful last call
  • New implementation of Nima's bulkheads with finer control over queues to handle cancellation of queued suppliers due to timeouts
  • All unit tests and TCKs are passing

…some changes to Nima's FT module to support some advanced use cases in MP. Added support for a new SupplierException that needs some special handling. The core of the MP FT implementation has been completely rewritten to use VTs and to continue to support async calls. Several tests updated as well.
Signed-off-by: Santiago Pericasgeertsen <santiago.pericasgeertsen@oracle.com>
Signed-off-by: Santiago Pericasgeertsen <santiago.pericasgeertsen@oracle.com>
…it is possible for a task to be cancelled (e.g. while waiting on a bulkhead) without its thread being interrupted. Fixed problem with retries after interruptions.
… exception via its returned value or via a throw. Fixed problem in FallbackImpl.
…ly checking the rolling window on a failed call and never on a successful one (it is needed in both cases)

- Fixed MP to SE exception mapping issue
@spericas spericas added fault-tolerance 4.x Version 4.x Níma Helidon Níma labels Oct 27, 2022
@spericas spericas added this to the 4.0.0 milestone Oct 27, 2022
@spericas spericas self-assigned this Oct 27, 2022
@oracle-contributor-agreement oracle-contributor-agreement bot added the OCA Verified All contributors have signed the Oracle Contributor Agreement. label Oct 27, 2022
@spericas spericas marked this pull request as draft October 27, 2022 12:38
…ethod catches InterruptedException and throws its own.
…dded support to cancel a supplier that timed out while waiting in a bulkhead's queue.

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>
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 October 31, 2022 19:08
@spericas spericas requested a review from tomas-langer October 31, 2022 19:08
@spericas spericas merged commit e6c92de into helidon-io:main Nov 2, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
4.x Version 4.x fault-tolerance Níma Helidon Níma OCA Verified All contributors have signed the Oracle Contributor Agreement.
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

3 participants