You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Sergey Antonov (Jira)" <ji...@apache.org> on 2020/06/10 11:20:00 UTC

[jira] [Commented] (IGNITE-12225) Add enum for cluster state

    [ https://issues.apache.org/jira/browse/IGNITE-12225?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17130535#comment-17130535 ] 

Sergey Antonov commented on IGNITE-12225:
-----------------------------------------

Changes in a public API:
# Introduced {{ClusterState}} enum.
# *{{org.apache.ignite.IgniteCluster}}*:
## Introduced new method for the cluster state change: {{void state(ClusterState)}}
## Introduced new method for the getting current cluster state: {{ClusterState state()}}
## Deprecated methods {{void active(boolean)}} and {{boolean active()}}. Use a new methods described above.
# *Control utility ({{control.sh}})*:
## Introduced new command for the cluster state change: {{control.sh --set-state INACTIVE|ACTIVE|ACTIVE_READ_ONLY [--yes]}}
## Deprecated activate/deactivate commands {{control.sh --activate}}, {{control.sh --deactivate}}
# *REST*:
## Introduced new command for changing cluster state:
##* Request: {{http://host:port/ignite?cmd=setstate&state=<NEW_STATE>}}
##* Response: {{ {"successStatus":0,"error":null,"sessionToken":null,"response":"setstate done"} }}
## Introduced new command for getting current cluster state:
##* Request: {{http://host:port/ignite?cmd=state}}
##* Response: {{ {"successStatus":0,"error":null,"sessionToken":null,"response":"ACTIVE"} }}
# *{{org.apache.ignite.IgniteConfiguration}}*:
## Introduced new property {{clusterStateOnStart}}. This property has the same behaviour as {{activeOnStart}} for in-memory clusters and {{autoActivation}} for the persistent clusters. The default value of a new property is {{DFLT_STATE_ON_START}} ({{ACTIVE}}).
## Deprecated {{activeOnStart}} and {{autoActivation}} properties and related with them default values {{DFLT_ACTIVE_ON_START}}, {{DFLT_AUTO_ACTIVATION}}.
# *IgniteEvents*:
## Introduced a new cluster state change event {{ClusterStateChangeEvent}}.
## Deprecated {{ClusterActivationEvent}} event.

> Add enum for cluster state
> --------------------------
>
>                 Key: IGNITE-12225
>                 URL: https://issues.apache.org/jira/browse/IGNITE-12225
>             Project: Ignite
>          Issue Type: Improvement
>            Reporter: Sergey Antonov
>            Assignee: Sergey Antonov
>            Priority: Major
>             Fix For: 2.9
>
>          Time Spent: 1h
>  Remaining Estimate: 0h
>
> We have 3 cluster states at the moment: inactive, active, read-only. 
> For getting current cluster state and changing them {{IgniteCluster}} has methods:
> * {{boolean active()}}, {{void active(boolean active)}} - for cluster activation/deactivation 
> * {{boolean readOnly()}}, {{void readOnly(boolean readOnly)}} - for enabling/disabling read-only mode.
> Also we have control.sh commans for changing cluster state:
> * {{--activate}}
> * {{--deactivate}}
> * {{--read-only-on}}
> * {{--read-only-off}}
> For me current API looks unuseful. My proposal:
> # Create enum {{ClusterState}} with values {{ACTIVE}}, {{INACTIVE}}, {{READ-ONLY}}.
> # Add methods to {{IgniteCluster}}:
> #* {{ClusterState state()}} returns current cluster state
> #* {{void state(ClusterState newState)}} changes cluster state to {{newState}} state
> # Mark as deprecated the following methods in {{IgniteCluster}}: {{boolean active()}}, {{void active(boolean active)}}, 
> # Add new command to control.sh: {{control.sh --set-state (ACTIVE|INACTIVE|READ-ONLY)}} [--yes]
> # Add warn message that command is depricated in control.sh. Commands: --activate, --deactivate, 
> # Remove commands from control.sh: --read-only-on, --read-only-off (no one release wasn't published with this functional)
> # Add new methods to {{IgniteConfiguration}}:
> #* {{ClusterState getClusterStateOnStart()}}
> #* {{IgniteConfiguration setClusterStateOnStart(ClusterState state)}}
> # Deprecate methods in {{IgniteConfiguration}}:
> #* {{boolean isActiveOnStart()}}
> #* {{IgniteConfiguration setActiveOnStart(boolean activeOnStart)}}
> # Depracate ClusterActivationEvent and introduce new ClusterStateChangeEvent.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)