[
https://issues.apache.org/jira/browse/IGNITE-23780?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Mirza Aliev updated IGNITE-23780:
---------------------------------
Description: (was: h1. Action table
|| # || stable || pending || in S || in P || in both || action ||
| 1 | empty | empty | no | no | no | nothing |
| 2 | empty | exists | no | no | no | nothing |
| 3 | empty | forced | no | no | no | nothing |
| 4 | exists | empty | yes | no | no | nothing |
| 5 | exists | exists | yes | no | no | nothing |
| 6 | exists | forced | yes | no | no | nothing |
| 7 | empty | empty | no | no | no | nothing |
| 8 | empty | exists | no | yes | no | start |
| 9 | empty | forced | no | yes | no | start |
| 10 | exists | empty | no | no | no | stop |
| 11 | exists | exists | no | yes | no | start |
| 12 | exists | forced | no | yes | no | start |
| 13 | empty | empty | no | no | no | nothing |
| 14 | empty | exists | no | no | no | nothing |
| 15 | empty | forced | no | no | no | nothing |
| 16 | exists | empty | no | no | no | nothing |
| 17 | exists | exists | yes | yes | yes | nothing |
| 18 | exists | forced | yes | yes | yes | nothing |
| 19 | empty | empty | no | no | no | nothing |
| 20 | empty | exists | no | no | no | nothing |
| 21 | empty | forced | no | no | no | nothing |
| 22 | exists | empty | no | no | no | nothing |
| 23 | exists | exists | no | no | no | stop |
| 24 | exists | forced | no | no | no | stop |
h1. Reasons
# NIA
# NIA
# NIA
# already should be started
# already started and in use now
# -Will be rewritten after force reset => stop- already started and in use now
# NIA
# Wasn't started before => start
# Wasn't started before => start
#
# Wasn't started before => start
# Wasn't started before => start
# NIA
# NIA
# NIA
# NIA
# already should be started
# already should be started
# NIA
# NIA
# NIA
#
#
h1. Abbreviations
* *NS*: Node start
* *NIA*: Not in assignments
h1. Improved table
|| # || stable || pending || in S || in P || in both || on restart ||
| 1 | empty | empty | no | no | no | nothing |
| 2 | empty | exists | no | no | no | nothing |
| 3 | empty | forced | no | no | no | nothing |
| 4 | exists | empty | yes | no | no | start |
| 5 | exists | exists | yes | no | no | start |
| 6 | exists | forced | yes | no | no | nothing |
| 8 | empty | exists | no | yes | no | start |
| 9 | empty | forced | no | yes | no | start |
| 10 | exists | empty | no | no | no | nothing |
| 11 | exists | exists | no | yes | no | start |
| 12 | exists | forced | no | yes | no | start |
| 17 | exists | exists | yes | yes | yes | start |
| 18 | exists | forced | yes | yes | yes | start |
| 23 | exists | exists | no | no | no | nothing |
| 24 | exists | forced | no | no | no | nothing |
{quote}
If the node is in a stable, but not in a forced pending, it should not be
started.
if ( (stable.contains(node) && !(force && pending.contains(node))) ||
pending.contains(node) ) \{ // node should be started }
if (stable.contains(node) && force && !pending.contains(node)) \{ // node
should not be started }
!(stable.contains(node) && force && !pending.contains(node)) ==
!stable.contains(node) || !force || pending.contains(node)
{quote}
|| # || A=inStable || B=inPending || C=isForce || start? || STMT ||
| 1 | F | F | F | F | - |
| 2 | F | F | F | F | - |
| 3 | F | F | T | F | - |
| 4 | T | F | F | T | A * !B * !C |
| 5 | T | F | F | T | the same as 4 |
| 6 | T | F | T | F | - |
| 8 | F | T | F | T | !A * B * !C |
| 9 | F | T | T | T | !A * B * C |
| 10 | F | F | F | F | - |
| 11 | F | T | F | T | the same as 8 |
| 12 | F | T | T | T | the same as 9 |
| 17 | T | T | F | T | A * B * !C |
| 18 | T | T | T | T | A * B * C |
| 23 | F | F | F | F | - |
| 24 | F | F | T | F | - |
A * !B * !C + !A * B * !C + !A * B * C + A * B * !C + A * B * C = = A * !B *
!C + !A * B * (!C + C) + A * B * (!C + C) = = A * !B * !C + !A * B + A * B = =
A * !B * !C + B * (!A + A) = = A * !B * !C + B = = A * !(B + C) + B = =
stable.contains(node) && !(pending.contains(node) || peinding.isForce())
| | pending.contains(node) |
A * B * C + A * !C + B
A * !C {{= A * !B * !C + !A * B * !C + !A * B * C + A * B * !C = A * !C + !A
* B * !C + !A * B * C = A * !C + !A * B =}} A * !B * !C
1 == !A * B + !B A = T B = T)
> Node restart behaviour for HA mode
> ----------------------------------
>
> Key: IGNITE-23780
> URL: https://issues.apache.org/jira/browse/IGNITE-23780
> Project: Ignite
> Issue Type: Improvement
> Reporter: Mirza Aliev
> Priority: Major
> Labels: ignite-3
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)