[jira] [Commented] (IGNITE-8376) Add cluster (de)activation events
[ https://issues.apache.org/jira/browse/IGNITE-8376?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16804089#comment-16804089 ] Ilya Kasnacheev commented on IGNITE-8376: - Thank you for your contribution! I have merged it to master with minor changes to test. > Add cluster (de)activation events > - > > Key: IGNITE-8376 > URL: https://issues.apache.org/jira/browse/IGNITE-8376 > Project: Ignite > Issue Type: Improvement >Reporter: Alexey Goncharuk >Assignee: Igor Belyakov >Priority: Major > Labels: newbie > Fix For: 2.8 > > Time Spent: 1.5h > Remaining Estimate: 0h > > Currently, we do not have any way to detect that a cluster got activated, > which results in busy-loops polling {{cluster().active()}}. > I suggest to add new events, {{EVT_CLUSTER_ACTIVATED}}, > {{EVT_CLUSTER_DEACTIVATED}}, {{EVT_CLUSTER_ACTIVATION_FAILED}} which will be > fired when corresponding steps are completed. The event should contain, if > possible, information about the activation source (public API or > auto-activation), topology version on which activation was performed. The > fail event should contain information about the cause of the failure. If > needed, a new class for this event should be introduced. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (IGNITE-8376) Add cluster (de)activation events
[ https://issues.apache.org/jira/browse/IGNITE-8376?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16800908#comment-16800908 ] Alexey Goncharuk commented on IGNITE-8376: -- [~ibelyakov] [~ilyak] we should somehow order {{recordEvent}} calls. In current patch it is possible that two fast activation events are submitted to different threads in system pool and will be reordered. Submitting event to the striped pool a single stripe, for example, will do the trick. > Add cluster (de)activation events > - > > Key: IGNITE-8376 > URL: https://issues.apache.org/jira/browse/IGNITE-8376 > Project: Ignite > Issue Type: Improvement >Reporter: Alexey Goncharuk >Assignee: Igor Belyakov >Priority: Major > Labels: newbie > Fix For: 2.8 > > Time Spent: 1h 20m > Remaining Estimate: 0h > > Currently, we do not have any way to detect that a cluster got activated, > which results in busy-loops polling {{cluster().active()}}. > I suggest to add new events, {{EVT_CLUSTER_ACTIVATED}}, > {{EVT_CLUSTER_DEACTIVATED}}, {{EVT_CLUSTER_ACTIVATION_FAILED}} which will be > fired when corresponding steps are completed. The event should contain, if > possible, information about the activation source (public API or > auto-activation), topology version on which activation was performed. The > fail event should contain information about the cause of the failure. If > needed, a new class for this event should be introduced. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (IGNITE-8376) Add cluster (de)activation events
[ https://issues.apache.org/jira/browse/IGNITE-8376?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16800473#comment-16800473 ] Ilya Kasnacheev commented on IGNITE-8376: - LGTM, but [~agoncharuk] can you please chime in and review also? > Add cluster (de)activation events > - > > Key: IGNITE-8376 > URL: https://issues.apache.org/jira/browse/IGNITE-8376 > Project: Ignite > Issue Type: Improvement >Reporter: Alexey Goncharuk >Assignee: Igor Belyakov >Priority: Major > Labels: newbie > Fix For: 2.8 > > Time Spent: 1h 20m > Remaining Estimate: 0h > > Currently, we do not have any way to detect that a cluster got activated, > which results in busy-loops polling {{cluster().active()}}. > I suggest to add new events, {{EVT_CLUSTER_ACTIVATED}}, > {{EVT_CLUSTER_DEACTIVATED}}, {{EVT_CLUSTER_ACTIVATION_FAILED}} which will be > fired when corresponding steps are completed. The event should contain, if > possible, information about the activation source (public API or > auto-activation), topology version on which activation was performed. The > fail event should contain information about the cause of the failure. If > needed, a new class for this event should be introduced. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (IGNITE-8376) Add cluster (de)activation events
[ https://issues.apache.org/jira/browse/IGNITE-8376?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16796918#comment-16796918 ] Igor Belyakov commented on IGNITE-8376: --- [~ilyak] Recording cluster activation event moved to ExchangeFuture listener. Tests implemented. > Add cluster (de)activation events > - > > Key: IGNITE-8376 > URL: https://issues.apache.org/jira/browse/IGNITE-8376 > Project: Ignite > Issue Type: Improvement >Reporter: Alexey Goncharuk >Assignee: Igor Belyakov >Priority: Major > Labels: newbie > Fix For: 2.8 > > Time Spent: 1h > Remaining Estimate: 0h > > Currently, we do not have any way to detect that a cluster got activated, > which results in busy-loops polling {{cluster().active()}}. > I suggest to add new events, {{EVT_CLUSTER_ACTIVATED}}, > {{EVT_CLUSTER_DEACTIVATED}}, {{EVT_CLUSTER_ACTIVATION_FAILED}} which will be > fired when corresponding steps are completed. The event should contain, if > possible, information about the activation source (public API or > auto-activation), topology version on which activation was performed. The > fail event should contain information about the cause of the failure. If > needed, a new class for this event should be introduced. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (IGNITE-8376) Add cluster (de)activation events
[ https://issues.apache.org/jira/browse/IGNITE-8376?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16796894#comment-16796894 ] Ignite TC Bot commented on IGNITE-8376: --- {panel:title=--> Run :: All: No blockers found!|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}{panel} [TeamCity *--> Run :: All* Results|https://ci.ignite.apache.org/viewLog.html?buildId=3352972&buildTypeId=IgniteTests24Java8_RunAll] > Add cluster (de)activation events > - > > Key: IGNITE-8376 > URL: https://issues.apache.org/jira/browse/IGNITE-8376 > Project: Ignite > Issue Type: Improvement >Reporter: Alexey Goncharuk >Assignee: Igor Belyakov >Priority: Major > Labels: newbie > Fix For: 2.8 > > Time Spent: 1h > Remaining Estimate: 0h > > Currently, we do not have any way to detect that a cluster got activated, > which results in busy-loops polling {{cluster().active()}}. > I suggest to add new events, {{EVT_CLUSTER_ACTIVATED}}, > {{EVT_CLUSTER_DEACTIVATED}}, {{EVT_CLUSTER_ACTIVATION_FAILED}} which will be > fired when corresponding steps are completed. The event should contain, if > possible, information about the activation source (public API or > auto-activation), topology version on which activation was performed. The > fail event should contain information about the cause of the failure. If > needed, a new class for this event should be introduced. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (IGNITE-8376) Add cluster (de)activation events
[ https://issues.apache.org/jira/browse/IGNITE-8376?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16790366#comment-16790366 ] Ignite TC Bot commented on IGNITE-8376: --- {panel:title=--> Run :: All: No blockers found!|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}{panel} [TeamCity *--> Run :: All* Results|https://ci.ignite.apache.org/viewLog.html?buildId=3288856&buildTypeId=IgniteTests24Java8_RunAll] > Add cluster (de)activation events > - > > Key: IGNITE-8376 > URL: https://issues.apache.org/jira/browse/IGNITE-8376 > Project: Ignite > Issue Type: Improvement >Reporter: Alexey Goncharuk >Assignee: Igor Belyakov >Priority: Major > Labels: newbie > Fix For: 2.8 > > Time Spent: 0.5h > Remaining Estimate: 0h > > Currently, we do not have any way to detect that a cluster got activated, > which results in busy-loops polling {{cluster().active()}}. > I suggest to add new events, {{EVT_CLUSTER_ACTIVATED}}, > {{EVT_CLUSTER_DEACTIVATED}}, {{EVT_CLUSTER_ACTIVATION_FAILED}} which will be > fired when corresponding steps are completed. The event should contain, if > possible, information about the activation source (public API or > auto-activation), topology version on which activation was performed. The > fail event should contain information about the cause of the failure. If > needed, a new class for this event should be introduced. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (IGNITE-8376) Add cluster (de)activation events
[ https://issues.apache.org/jira/browse/IGNITE-8376?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16536759#comment-16536759 ] kcheng.mvp commented on IGNITE-8376: [~DmitriyGovorukhin][~agoncharuk][~kuaw26] Once thing need to clarify with you. from the source code. right now there are just two type of *internal* event as below you means we make the mentioned events as *internal* as well? 1: "Cluster level* EVT_CLUSTER_ACTIVATED, EVT_CLUSTER_DEACTIVATED, EVT_CLUSTER_ACTIVATION_FAILED 2: "Node Level" EVT_NODE_ACTIVATE,EVT_NODE_DEACTIVATE,EVT_NODE_ACTIVATING, EVT_NODE_DEACTIVATING is my understanding correct? {code:java} /** * Checks whether or not this event is an internal event. * * Internal event types are always recordable for notification purposes * but may not be sent down to SPI level for storage and subsequent querying. * * @param type Event type. * @return {@code true} if this is an internal event. */ private boolean isInternalEvent(int type) { return type == EVT_DISCOVERY_CUSTOM_EVT || F.contains(EVTS_DISCOVERY_ALL, type); } {code} > Add cluster (de)activation events > - > > Key: IGNITE-8376 > URL: https://issues.apache.org/jira/browse/IGNITE-8376 > Project: Ignite > Issue Type: Improvement >Reporter: Alexey Goncharuk >Assignee: kcheng.mvp >Priority: Major > Labels: newbie > Fix For: 2.7 > > > Currently, we do not have any way to detect that a cluster got activated, > which results in busy-loops polling {{cluster().active()}}. > I suggest to add new events, {{EVT_CLUSTER_ACTIVATED}}, > {{EVT_CLUSTER_DEACTIVATED}}, {{EVT_CLUSTER_ACTIVATION_FAILED}} which will be > fired when corresponding steps are completed. The event should contain, if > possible, information about the activation source (public API or > auto-activation), topology version on which activation was performed. The > fail event should contain information about the cause of the failure. If > needed, a new class for this event should be introduced. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (IGNITE-8376) Add cluster (de)activation events
[ https://issues.apache.org/jira/browse/IGNITE-8376?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16536501#comment-16536501 ] kcheng.mvp commented on IGNITE-8376: Thank you all very much for your comments. Right now I am working on it, once it's ready I will raise PR. > Add cluster (de)activation events > - > > Key: IGNITE-8376 > URL: https://issues.apache.org/jira/browse/IGNITE-8376 > Project: Ignite > Issue Type: Improvement >Reporter: Alexey Goncharuk >Assignee: kcheng.mvp >Priority: Major > Labels: newbie > Fix For: 2.7 > > > Currently, we do not have any way to detect that a cluster got activated, > which results in busy-loops polling {{cluster().active()}}. > I suggest to add new events, {{EVT_CLUSTER_ACTIVATED}}, > {{EVT_CLUSTER_DEACTIVATED}}, {{EVT_CLUSTER_ACTIVATION_FAILED}} which will be > fired when corresponding steps are completed. The event should contain, if > possible, information about the activation source (public API or > auto-activation), topology version on which activation was performed. The > fail event should contain information about the cause of the failure. If > needed, a new class for this event should be introduced. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (IGNITE-8376) Add cluster (de)activation events
[ https://issues.apache.org/jira/browse/IGNITE-8376?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16534773#comment-16534773 ] Dmitriy Govorukhin commented on IGNITE-8376: [~kuaw26] We can create the internal component or use existing (ClusterStateProcessor) who will listen to these events and accumulate current state, Web Console will poll state from any node. No need to check each node, poll only one. > Add cluster (de)activation events > - > > Key: IGNITE-8376 > URL: https://issues.apache.org/jira/browse/IGNITE-8376 > Project: Ignite > Issue Type: Improvement >Reporter: Alexey Goncharuk >Assignee: kcheng.mvp >Priority: Major > Labels: newbie > Fix For: 2.7 > > > Currently, we do not have any way to detect that a cluster got activated, > which results in busy-loops polling {{cluster().active()}}. > I suggest to add new events, {{EVT_CLUSTER_ACTIVATED}}, > {{EVT_CLUSTER_DEACTIVATED}}, {{EVT_CLUSTER_ACTIVATION_FAILED}} which will be > fired when corresponding steps are completed. The event should contain, if > possible, information about the activation source (public API or > auto-activation), topology version on which activation was performed. The > fail event should contain information about the cause of the failure. If > needed, a new class for this event should be introduced. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (IGNITE-8376) Add cluster (de)activation events
[ https://issues.apache.org/jira/browse/IGNITE-8376?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16534765#comment-16534765 ] Alexey Kuznetsov commented on IGNITE-8376: -- [~DmitriyGovorukhin] Such event would work only for internal Ignite purposes, but I need for external application, like a Web Console, that can poll current state and CANNOT subscribe for events, because working via REST-http > Add cluster (de)activation events > - > > Key: IGNITE-8376 > URL: https://issues.apache.org/jira/browse/IGNITE-8376 > Project: Ignite > Issue Type: Improvement >Reporter: Alexey Goncharuk >Assignee: kcheng.mvp >Priority: Major > Labels: newbie > Fix For: 2.7 > > > Currently, we do not have any way to detect that a cluster got activated, > which results in busy-loops polling {{cluster().active()}}. > I suggest to add new events, {{EVT_CLUSTER_ACTIVATED}}, > {{EVT_CLUSTER_DEACTIVATED}}, {{EVT_CLUSTER_ACTIVATION_FAILED}} which will be > fired when corresponding steps are completed. The event should contain, if > possible, information about the activation source (public API or > auto-activation), topology version on which activation was performed. The > fail event should contain information about the cause of the failure. If > needed, a new class for this event should be introduced. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (IGNITE-8376) Add cluster (de)activation events
[ https://issues.apache.org/jira/browse/IGNITE-8376?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16534750#comment-16534750 ] Dmitriy Govorukhin commented on IGNITE-8376: [~kuaw26] I do not think that we should have API like this, {code} /** return number of already activated/deactivated nodes */ int cluster.activeStateProgress(); {code} It will be better if create additional events, (EVT_NODE_ACTIVATE,EVT_NODE_DEACTIVATE,EVT_NODE_ACTIVATING, EVT_NODE_DEACTIVATING). Then we can track cluster state, with per-node granularity. I guess it will be a more flexible approach. No need to query the status of each node, just listen to events. > Add cluster (de)activation events > - > > Key: IGNITE-8376 > URL: https://issues.apache.org/jira/browse/IGNITE-8376 > Project: Ignite > Issue Type: Improvement >Reporter: Alexey Goncharuk >Assignee: kcheng.mvp >Priority: Major > Labels: newbie > Fix For: 2.7 > > > Currently, we do not have any way to detect that a cluster got activated, > which results in busy-loops polling {{cluster().active()}}. > I suggest to add new events, {{EVT_CLUSTER_ACTIVATED}}, > {{EVT_CLUSTER_DEACTIVATED}}, {{EVT_CLUSTER_ACTIVATION_FAILED}} which will be > fired when corresponding steps are completed. The event should contain, if > possible, information about the activation source (public API or > auto-activation), topology version on which activation was performed. The > fail event should contain information about the cause of the failure. If > needed, a new class for this event should be introduced. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (IGNITE-8376) Add cluster (de)activation events
[ https://issues.apache.org/jira/browse/IGNITE-8376?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16534741#comment-16534741 ] Alexey Kuznetsov commented on IGNITE-8376: -- [~agoncharuk] and [~DmitriyGovorukhin] Could we have not only events, but also a kind of enum property that works the same as boolean property cluster.active() ? This could be smth. like (pseudo code): {code} ClusterStateEnum {ACTIVE, INACTIVE, ACTIVATING, DEACTIVATING}; ClusterStateEnum cluster.activeState(); {code} One more idea - report of current progress of activation/deactivation: {code} /** return number of already activated/deactivated nodes */ int cluster.activeStateProgress(); {code} What do you think? > Add cluster (de)activation events > - > > Key: IGNITE-8376 > URL: https://issues.apache.org/jira/browse/IGNITE-8376 > Project: Ignite > Issue Type: Improvement >Reporter: Alexey Goncharuk >Assignee: kcheng.mvp >Priority: Major > Labels: newbie > Fix For: 2.7 > > > Currently, we do not have any way to detect that a cluster got activated, > which results in busy-loops polling {{cluster().active()}}. > I suggest to add new events, {{EVT_CLUSTER_ACTIVATED}}, > {{EVT_CLUSTER_DEACTIVATED}}, {{EVT_CLUSTER_ACTIVATION_FAILED}} which will be > fired when corresponding steps are completed. The event should contain, if > possible, information about the activation source (public API or > auto-activation), topology version on which activation was performed. The > fail event should contain information about the cause of the failure. If > needed, a new class for this event should be introduced. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (IGNITE-8376) Add cluster (de)activation events
[ https://issues.apache.org/jira/browse/IGNITE-8376?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16529524#comment-16529524 ] kcheng.mvp commented on IGNITE-8376: [~agoncharuk] After go through the code and found the active/deactive action will finally router to {code:java} org.apache.ignite.internal.cluster.IgniteClusterImpl#active(boolean) /** {@inheritDoc} */ @Override public void active(boolean active) { guard(); try { ctx.state().changeGlobalState(active, baselineNodes(), false).get(); } catch (IgniteCheckedException e) { throw U.convertException(e); } finally { unguard(); } } {code} ideally it's the best place to trigger the event, but if we trigger the event here, seems we can not get by which means this event is triggered(api, rest, mbean visitorcommand or auto). is my understanding correct? Thank you very much! > Add cluster (de)activation events > - > > Key: IGNITE-8376 > URL: https://issues.apache.org/jira/browse/IGNITE-8376 > Project: Ignite > Issue Type: Improvement >Reporter: Alexey Goncharuk >Assignee: kcheng.mvp >Priority: Major > Labels: newbie > Fix For: 2.7 > > > Currently, we do not have any way to detect that a cluster got activated, > which results in busy-loops polling {{cluster().active()}}. > I suggest to add new events, {{EVT_CLUSTER_ACTIVATED}}, > {{EVT_CLUSTER_DEACTIVATED}}, {{EVT_CLUSTER_ACTIVATION_FAILED}} which will be > fired when corresponding steps are completed. The event should contain, if > possible, information about the activation source (public API or > auto-activation), topology version on which activation was performed. The > fail event should contain information about the cause of the failure. If > needed, a new class for this event should be introduced. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (IGNITE-8376) Add cluster (de)activation events
[ https://issues.apache.org/jira/browse/IGNITE-8376?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16528650#comment-16528650 ] kcheng.mvp commented on IGNITE-8376: I found below entries to active/deactivate cluster. 1: rest api -> org.apache.ignite.internal.processors.rest.handlers.cluster.GridChangeStateCommandHandle 2: command visitor -> VisorTopologyCommand.scala 3: direct api call -> org.apache.ignite.Ignite > Add cluster (de)activation events > - > > Key: IGNITE-8376 > URL: https://issues.apache.org/jira/browse/IGNITE-8376 > Project: Ignite > Issue Type: Improvement >Reporter: Alexey Goncharuk >Assignee: kcheng.mvp >Priority: Major > Labels: newbie > Fix For: 2.7 > > > Currently, we do not have any way to detect that a cluster got activated, > which results in busy-loops polling {{cluster().active()}}. > I suggest to add new events, {{EVT_CLUSTER_ACTIVATED}}, > {{EVT_CLUSTER_DEACTIVATED}}, {{EVT_CLUSTER_ACTIVATION_FAILED}} which will be > fired when corresponding steps are completed. The event should contain, if > possible, information about the activation source (public API or > auto-activation), topology version on which activation was performed. The > fail event should contain information about the cause of the failure. If > needed, a new class for this event should be introduced. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (IGNITE-8376) Add cluster (de)activation events
[ https://issues.apache.org/jira/browse/IGNITE-8376?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16528630#comment-16528630 ] kcheng.mvp commented on IGNITE-8376: Hi [~agoncharuk], I would like to take this ticket, would you please give me some hints/instructions? Thanks, Ken > Add cluster (de)activation events > - > > Key: IGNITE-8376 > URL: https://issues.apache.org/jira/browse/IGNITE-8376 > Project: Ignite > Issue Type: Improvement >Reporter: Alexey Goncharuk >Assignee: kcheng.mvp >Priority: Major > Labels: newbie > Fix For: 2.7 > > > Currently, we do not have any way to detect that a cluster got activated, > which results in busy-loops polling {{cluster().active()}}. > I suggest to add new events, {{EVT_CLUSTER_ACTIVATED}}, > {{EVT_CLUSTER_DEACTIVATED}}, {{EVT_CLUSTER_ACTIVATION_FAILED}} which will be > fired when corresponding steps are completed. The event should contain, if > possible, information about the activation source (public API or > auto-activation), topology version on which activation was performed. The > fail event should contain information about the cause of the failure. If > needed, a new class for this event should be introduced. -- This message was sent by Atlassian JIRA (v7.6.3#76005)