sashapolo commented on code in PR #1412:
URL: https://github.com/apache/ignite-3/pull/1412#discussion_r1043286853
##########
modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/ClusterManagementGroupManager.java:
##########
@@ -125,6 +125,19 @@ public class ClusterManagementGroupManager implements
IgniteComponent {
/** Handles cluster initialization flow. */
private final ClusterInitializer clusterInitializer;
+ /**
+ * Whether we attempted to complete join (i.e. send JoinReady command) on
Ignite node start.
+ *
+ * <p>Such join completion always happens during a start, and it is always
the last step during the startup process,
+ * to make sure a node joins the cluster when it's fully ready.
+ *
+ * <p>We need this flag to make sure we handle automatic rejoins
correctly. If a short network hiccup happens, CMG leader
+ * might lose our node of sight, hence the node will be removed from
physical and then from logical topologies. When
+ * the network connectivity is restored, the node will appear in the
physical topology, after which it till try to
+ * rejoin the cluster. If such a 'rejoin' was carried unconditionally, it
could happen before the first join during
+ * startup, so a not-yet-ready node could join the cluster. That's why we
use this flag to only try such automatic
Review Comment:
I think that the "That's why" sentence can be removed, it's kinda redundant
##########
modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/ClusterManagementGroupManager.java:
##########
@@ -125,6 +125,19 @@ public class ClusterManagementGroupManager implements
IgniteComponent {
/** Handles cluster initialization flow. */
private final ClusterInitializer clusterInitializer;
+ /**
+ * Whether we attempted to complete join (i.e. send JoinReady command) on
Ignite node start.
+ *
+ * <p>Such join completion always happens during a start, and it is always
the last step during the startup process,
+ * to make sure a node joins the cluster when it's fully ready.
+ *
+ * <p>We need this flag to make sure we handle automatic rejoins
correctly. If a short network hiccup happens, CMG leader
+ * might lose our node of sight, hence the node will be removed from
physical and then from logical topologies. When
+ * the network connectivity is restored, the node will appear in the
physical topology, after which it till try to
+ * rejoin the cluster. If such a 'rejoin' was carried unconditionally, it
could happen before the first join during
Review Comment:
```suggestion
* rejoin the cluster. If such 'rejoin' was carried unconditionally, it
could happen before the first join during
```
##########
modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/ClusterManagementGroupManager.java:
##########
@@ -125,6 +125,19 @@ public class ClusterManagementGroupManager implements
IgniteComponent {
/** Handles cluster initialization flow. */
private final ClusterInitializer clusterInitializer;
+ /**
+ * Whether we attempted to complete join (i.e. send JoinReady command) on
Ignite node start.
+ *
+ * <p>Such join completion always happens during a start, and it is always
the last step during the startup process,
+ * to make sure a node joins the cluster when it's fully ready.
+ *
+ * <p>We need this flag to make sure we handle automatic rejoins
correctly. If a short network hiccup happens, CMG leader
+ * might lose our node of sight, hence the node will be removed from
physical and then from logical topologies. When
+ * the network connectivity is restored, the node will appear in the
physical topology, after which it till try to
Review Comment:
```suggestion
* the network connectivity is restored, the node will appear in the
physical topology, after which it will try to
```
##########
modules/network/src/main/java/org/apache/ignite/network/DefaultMessagingService.java:
##########
@@ -404,7 +404,8 @@ public void stop() {
* Installs a predicate, it will be consulted with for each message being
sent; when it returns {@code true}, the
* message will be silently dropped (it will not be sent, the
corresponding future will never complete).
*
- * @param predicate Predicate that will decide whether a message should be
dropped.
+ * @param predicate Predicate that will decide whether a message should be
dropped. Its first argument is the recipient
+ * node consistent ID.
Review Comment:
```suggestion
* node's consistent ID.
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]