-
Notifications
You must be signed in to change notification settings - Fork 135
IGNITE-19960 Backport 1.3.10 release form the JRaft #2321
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
Conversation
…n blocking or non-blocking mode, and improve disruptor usage
This reverts commit 1f10b36.
| event.expectedTerm = task.getExpectedTerm(); | ||
| }; | ||
| switch (this.options.getApplyTaskMode()) { | ||
| case Blocking: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not sure if a blocking mode has any use for us. Probably shouldn't be ported at all.
@alievmirza Do you know a single use case ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For example, it could help us to not fail with overload exception in scenarios like this https://issues.apache.org/jira/browse/IGNITE-19419
Also in the current implementation after overload of disk queue in LogManagerImpl and overload of FSMCallerImpl they enter erroneous state that is never reset, which makes impossible the further work of the component. It was fixed also
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It is forbidden to use blocking code in Ignite worker threads. The patch adds retries on a busy state, this should be enough. It seems a blocking mode will never be used.
https://issues.apache.org/jira/browse/IGNITE-19960