public interface IgniteCluster extends ClusterGroup, IgniteAsyncSupport
nodeLocalMap()
which
provides map-like functionality linked to current grid node. Node-local map is useful for saving shared state
between job executions on the grid. Additionally you can also ping, start, and restart remote nodes, map keys to
caching nodes, and get other useful information about topology.Modifier and Type | Field and Description |
---|---|
static int |
MAX_TAG_LENGTH
Maximum length of
tag() tag. |
Modifier and Type | Method and Description |
---|---|
boolean |
active()
Deprecated.
Use
state() instead. |
void |
active(boolean active)
Deprecated.
Use
state(ClusterState) instead. |
void |
baselineAutoAdjustEnabled(boolean baselineAutoAdjustEnabled) |
org.apache.ignite.internal.processors.cluster.baseline.autoadjust.BaselineAutoAdjustStatus |
baselineAutoAdjustStatus() |
long |
baselineAutoAdjustTimeout() |
void |
baselineAutoAdjustTimeout(long baselineAutoAdjustTimeout) |
void |
clearStatistics(Collection<String> caches)
Clear statistics for caches cluster wide.
|
@Nullable IgniteFuture<?> |
clientReconnectFuture()
If local client node disconnected from cluster returns future
that will be completed when client reconnected.
|
@Nullable Collection<BaselineNode> |
currentBaselineTopology()
Gets current baseline topology.
|
boolean |
disableWal(String cacheName)
Disables write-ahead logging for specified cache.
|
void |
enableStatistics(Collection<String> caches,
boolean enabled)
Enables/disables statistics for caches cluster wide.
|
boolean |
enableWal(String cacheName)
Enables write-ahead logging for specified cache.
|
ClusterGroup |
forLocal()
Gets a cluster group consisting from the local node.
|
UUID |
id()
Cluster ID is a unique identifier automatically generated when cluster starts up for the very first time.
|
boolean |
isBaselineAutoAdjustEnabled() |
boolean |
isWalEnabled(String cacheName)
Checks if write-ahead logging is enabled for specified cache.
|
ClusterNode |
localNode()
Gets local grid node.
|
<K,V> ConcurrentMap<K,V> |
nodeLocalMap()
Gets node-local storage instance.
|
boolean |
pingNode(UUID nodeId)
Pings a remote node.
|
void |
resetMetrics()
Resets local I/O, job, and task execution metrics.
|
void |
restartNodes()
Restarts nodes satisfying optional set of predicates.
|
void |
restartNodes(Collection<UUID> ids)
Restarts nodes defined by provided IDs.
|
void |
setBaselineTopology(Collection<? extends BaselineNode> baselineTop)
Sets baseline topology.
|
void |
setBaselineTopology(long topVer)
Sets baseline topology constructed from the cluster topology of the given version (the method succeeds
only if the cluster topology has not changed).
|
void |
setTxTimeoutOnPartitionMapExchange(long timeout)
Sets transaction timeout on partition map exchange.
|
ShutdownPolicy |
shutdownPolicy()
Returns a policy of shutdown or default value
IgniteConfiguration.DFLT_SHUTDOWN_POLICY
if the property is not set. |
void |
shutdownPolicy(ShutdownPolicy shutdownPolicy)
Sets a shutdown policy on a cluster.
|
Collection<ClusterStartNodeResult> |
startNodes(Collection<Map<String,Object>> hosts,
@Nullable Map<String,Object> dflts,
boolean restart,
int timeout,
int maxConn)
Starts one or more nodes on remote host(s).
|
Collection<ClusterStartNodeResult> |
startNodes(File file,
boolean restart,
int timeout,
int maxConn)
Starts one or more nodes on remote host(s).
|
IgniteFuture<Collection<ClusterStartNodeResult>> |
startNodesAsync(Collection<Map<String,Object>> hosts,
@Nullable Map<String,Object> dflts,
boolean restart,
int timeout,
int maxConn)
Starts one or more nodes on remote host(s) asynchronously.
|
IgniteFuture<Collection<ClusterStartNodeResult>> |
startNodesAsync(File file,
boolean restart,
int timeout,
int maxConn)
Starts one or more nodes on remote host(s) asynchronously.
|
ClusterState |
state()
Gets current cluster state.
|
void |
state(ClusterState newState)
Changes current cluster state to given
newState cluster state. |
void |
stopNodes()
Stops nodes satisfying optional set of predicates.
|
void |
stopNodes(Collection<UUID> ids)
Stops nodes defined by provided IDs.
|
String |
tag()
User-defined tag describing the cluster.
|
void |
tag(String tag)
Enables user to add a specific label to the cluster e.g. to describe purpose of the cluster
or any its characteristics.
|
Collection<ClusterNode> |
topology(long topVer)
Gets a topology by version.
|
long |
topologyVersion()
Gets current topology version.
|
IgniteCluster |
withAsync()
Deprecated.
|
forAttribute, forCacheNodes, forClientNodes, forClients, forDataNodes, forHost, forHost, forNode, forNodeId, forNodeIds, forNodes, forOldest, forOthers, forOthers, forPredicate, forRandom, forRemotes, forServers, forYoungest, hostNames, ignite, metrics, node, node, nodes, predicate
future, isAsync
static final int MAX_TAG_LENGTH
tag()
tag.ClusterNode localNode()
ClusterGroup forLocal()
<K,V> ConcurrentMap<K,V> nodeLocalMap()
Node-local values are similar to thread locals in a way that these values are not distributed and kept only on local node (similar like thread local values are attached to the current thread only). Node-local values are used primarily by closures executed from the remote nodes to keep intermediate state on the local node between executions.
There's only one instance of node local storage per local node. Node local storage is
based on ConcurrentMap
and is safe for multi-threaded access.
K
- Type of keys in the node local map.V
- Type of mapped values in the node local map.boolean pingNode(UUID nodeId)
Discovery SPIs usually have some latency in discovering failed nodes. Hence, communication to remote nodes may fail at times if an attempt was made to establish communication with a failed node. This method can be used to check if communication has failed due to node failure or due to some other reason.
nodeId
- ID of a node to ping.true
if node for a given ID is alive, false
otherwise.DiscoverySpi
long topologyVersion()
TcpDiscoverySpi
) topology versions
are sequential - they start from '1'
and get incremented every time whenever a
node joins or leaves. For other discovery SPIs topology versions may not be (and likely are
not) sequential.Collection<ClusterNode> topology(long topVer) throws UnsupportedOperationException
null
if topology history storage doesn't contain
specified topology version (history currently keeps last 1000
snapshots).topVer
- Topology version.null
otherwise.UnsupportedOperationException
- If underlying SPI implementation does not support
topology history. Currently only TcpDiscoverySpi
supports topology history.@IgniteAsyncSupported Collection<ClusterStartNodeResult> startNodes(File file, boolean restart, int timeout, int maxConn) throws IgniteException
This method takes INI file which defines all startup parameters. It can contain one or
more sections, each for a host or for range of hosts (note that they must have different
names) and a special 'defaults
' section with default values. They are applied to
undefined parameters in host's sections.
Returned result is collection of tuples. Each tuple corresponds to one node start attempt and contains hostname, success flag and error message if attempt was not successful. Note that successful attempt doesn't mean that node was actually started and joined topology. For large topologies (> 100s nodes) it can take over 10 minutes for all nodes to start. See individual node logs for details.
Supports asynchronous execution (see IgniteAsyncSupport
).
file
- Configuration file.restart
- Whether to stop existing nodes. If true
, all existing
nodes on the host will be stopped before starting new ones. If
false
, nodes will be started only if there are less
nodes on the host than expected.timeout
- Connection timeout.maxConn
- Number of parallel SSH connections to one host.IgniteException
- In case of error.IgniteFuture<Collection<ClusterStartNodeResult>> startNodesAsync(File file, boolean restart, int timeout, int maxConn) throws IgniteException
This method takes INI file which defines all startup parameters. It can contain one or
more sections, each for a host or for range of hosts (note that they must have different
names) and a special 'defaults
' section with default values. They are applied to
undefined parameters in host's sections.
Completed future contains collection of tuples. Each tuple corresponds to one node start attempt and contains hostname, success flag and error message if attempt was not successful. Note that successful attempt doesn't mean that node was actually started and joined topology. For large topologies (> 100s nodes) it can take over 10 minutes for all nodes to start. See individual node logs for details.
file
- Configuration file.restart
- Whether to stop existing nodes. If true
, all existing
nodes on the host will be stopped before starting new ones. If
false
, nodes will be started only if there are less
nodes on the host than expected.timeout
- Connection timeout.maxConn
- Number of parallel SSH connections to one host.IgniteException
- In case of error.@IgniteAsyncSupported Collection<ClusterStartNodeResult> startNodes(Collection<Map<String,Object>> hosts, @Nullable @Nullable Map<String,Object> dflts, boolean restart, int timeout, int maxConn) throws IgniteException
Each map in hosts
collection
defines startup parameters for one host or for a range of hosts. The following
parameters are supported:
Name | Type | Description |
---|---|---|
host | String |
Hostname (required). Can define several hosts if their IPs are sequential.
E.g., 10.0.0.1~5 defines range of five IP addresses. Other
parameters are applied to all hosts equally.
|
port | Integer | Port number (default is 22 ). |
uname | String | Username (if not defined, current local username will be used). |
passwd | String | Password (if not defined, private key file must be defined). |
key | File | Private key file (if not defined, password must be defined). |
nodes | Integer |
Expected number of nodes on the host. If some nodes are started
already, then only remaining nodes will be started. If current count of
nodes is equal to this number, and restart flag is false ,
then nothing will happen.
|
igniteHome | String | Path to Ignite installation folder. If not defined, IGNITE_HOME environment variable must be set on remote hosts. |
cfg | String | Path to configuration file (relative to igniteHome ). |
script | String |
Custom startup script file name and path (relative to igniteHome ).
You can also specify a space-separated list of parameters in the same
string (for example: "bin/my-custom-script.sh -v" ).
|
dflts
map defines default values. They are applied to undefined parameters in
hosts
collection.
Returned result is collection of tuples. Each tuple corresponds to one node start attempt and contains hostname, success flag and error message if attempt was not successful. Note that successful attempt doesn't mean that node was actually started and joined topology. For large topologies (> 100s nodes) it can take over 10 minutes for all nodes to start. See individual node logs for details.
Supports asynchronous execution (see IgniteAsyncSupport
).
hosts
- Startup parameters.dflts
- Default values.restart
- Whether to stop existing nodes. If true
, all existing
nodes on the host will be stopped before starting new ones. If
false
, nodes will be started only if there are less
nodes on the host than expected.timeout
- Connection timeout in milliseconds.maxConn
- Number of parallel SSH connections to one host.IgniteException
- In case of error.IgniteFuture<Collection<ClusterStartNodeResult>> startNodesAsync(Collection<Map<String,Object>> hosts, @Nullable @Nullable Map<String,Object> dflts, boolean restart, int timeout, int maxConn) throws IgniteException
Each map in hosts
collection
defines startup parameters for one host or for a range of hosts. The following
parameters are supported:
Name | Type | Description |
---|---|---|
host | String |
Hostname (required). Can define several hosts if their IPs are sequential.
E.g., 10.0.0.1~5 defines range of five IP addresses. Other
parameters are applied to all hosts equally.
|
port | Integer | Port number (default is 22 ). |
uname | String | Username (if not defined, current local username will be used). |
passwd | String | Password (if not defined, private key file must be defined). |
key | File | Private key file (if not defined, password must be defined). |
nodes | Integer |
Expected number of nodes on the host. If some nodes are started
already, then only remaining nodes will be started. If current count of
nodes is equal to this number, and restart flag is false ,
then nothing will happen.
|
igniteHome | String | Path to Ignite installation folder. If not defined, IGNITE_HOME environment variable must be set on remote hosts. |
cfg | String | Path to configuration file (relative to igniteHome ). |
script | String |
Custom startup script file name and path (relative to igniteHome ).
You can also specify a space-separated list of parameters in the same
string (for example: "bin/my-custom-script.sh -v" ).
|
dflts
map defines default values. They are applied to undefined parameters in
hosts
collection.
Completed future contains collection of tuples. Each tuple corresponds to one node start attempt and contains hostname, success flag and error message if attempt was not successful. Note that successful attempt doesn't mean that node was actually started and joined topology. For large topologies (> 100s nodes) it can take over 10 minutes for all nodes to start. See individual node logs for details.
hosts
- Startup parameters.dflts
- Default values.restart
- Whether to stop existing nodes. If true
, all existing
nodes on the host will be stopped before starting new ones. If
false
, nodes will be started only if there are less
nodes on the host than expected.timeout
- Connection timeout in milliseconds.maxConn
- Number of parallel SSH connections to one host.IgniteException
- In case of error.void stopNodes() throws IgniteException
NOTE: System.exit(Ignition.KILL_EXIT_CODE)
will be executed on each
stopping node. If you have other applications running in the same JVM along with Ignition,
those applications will be stopped as well.
IgniteException
- In case of error.void stopNodes(Collection<UUID> ids) throws IgniteException
NOTE: System.exit(Ignition.KILL_EXIT_CODE)
will be executed on each
stopping node. If you have other applications running in the same JVM along with Ignition,
those applications will be stopped as well.
ids
- IDs defining nodes to stop.IgniteException
- In case of error.void restartNodes() throws IgniteException
NOTE: this command only works for grid nodes started with Ignition
ignite.sh
or ignite.bat
scripts.
IgniteException
- In case of error.void restartNodes(Collection<UUID> ids) throws IgniteException
NOTE: this command only works for grid nodes started with Ignition
ignite.sh
or ignite.bat
scripts.
ids
- IDs defining nodes to restart.IgniteException
- In case of error.void resetMetrics()
void enableStatistics(Collection<String> caches, boolean enabled)
caches
- Collection of cache names.enabled
- Statistics enabled flag.void clearStatistics(Collection<String> caches)
caches
- Collection of cache names.void setTxTimeoutOnPartitionMapExchange(long timeout)
timeout
- Transaction timeout on partition map exchange in milliseconds.@Nullable @Nullable IgniteFuture<?> clientReconnectFuture()
@Deprecated boolean active()
state()
instead.True
if grid is active. False
If grid is not active.@Deprecated void active(boolean active)
state(ClusterState)
instead.NOTE: Deactivation clears in-memory caches (without persistence) including the system caches.
active
- If True
start activation process. If False
start deactivation process.IgniteException
- If there is an already started transaction or lock in the same thread.ClusterState state()
void state(ClusterState newState) throws IgniteException
newState
cluster state.
NOTE: Deactivation clears in-memory caches (without persistence) including the system caches.
newState
- New cluster state.IgniteException
- If there is an already started transaction or lock in the same thread.@Nullable @Nullable Collection<BaselineNode> currentBaselineTopology()
null
.void setBaselineTopology(Collection<? extends BaselineNode> baselineTop)
baselineTop
- A collection of nodes to be included to the baseline topology.void setBaselineTopology(long topVer)
topVer
- Topology version to set.@Deprecated IgniteCluster withAsync()
withAsync
in interface IgniteAsyncSupport
boolean disableWal(String cacheName) throws IgniteException
Internally this method will wait for all current cache operations to finish and prevent new cache operations from being executed. Then checkpoint is initiated to flush all data to disk. Control is returned to the callee when all dirty pages are prepared for checkpoint, but not necessarily flushed to disk.
WAL state can be changed only for persistent caches.
NOTE: Currently, this method should only be called on a stable topology when no nodes are leaving or joining cluster, and all baseline nodes are present. Cache may be stuck in inconsistent state due to violation of these conditions. It is advised to destroy such cache.
cacheName
- Cache name.IgniteException
- If error occurs.enableWal(String)
,
isWalEnabled(String)
boolean enableWal(String cacheName) throws IgniteException
disableWal(String)
.
Internally this method will wait for all current cache operations to finish and prevent new cache operations from being executed. Then checkpoint is initiated to flush all data to disk. Control is returned to the callee when all data is persisted to disk.
WAL state can be changed only for persistent caches.
NOTE: Currently, this method should only be called on a stable topology when no nodes are leaving or joining cluster, and all baseline nodes are present. Cache may be stuck in inconsistent state due to violation of these conditions. It is advised to destroy such cache.
cacheName
- Cache name.IgniteException
- If error occurs.disableWal(String)
,
isWalEnabled(String)
boolean isWalEnabled(String cacheName)
cacheName
- Cache name.True
if WAL is enabled for cache.disableWal(String)
,
enableWal(String)
UUID id()
String tag()
void tag(String tag) throws IgniteCheckedException
MAX_TAG_LENGTH
value.tag
- New tag to be set.IgniteCheckedException
- In case tag change is requested on inactive cluster
or concurrent tag change request was completed before the current one.
Also provided tag is checked for max length.boolean isBaselineAutoAdjustEnabled()
True
If cluster in auto-adjust.
False
If cluster in manual.void baselineAutoAdjustEnabled(boolean baselineAutoAdjustEnabled) throws IgniteException
baselineAutoAdjustEnabled
- Value of manual baseline control or auto adjusting baseline. True
If
cluster in auto-adjust. False
If cluster in manuale.IgniteException
- If operation failed.long baselineAutoAdjustTimeout()
IgniteException
- If operation failed.void baselineAutoAdjustTimeout(long baselineAutoAdjustTimeout) throws IgniteException
baselineAutoAdjustTimeout
- Number of milliseconds to wait before the actual topology change since last
server topology change (node join/left/fail).IgniteException
- If failed.org.apache.ignite.internal.processors.cluster.baseline.autoadjust.BaselineAutoAdjustStatus baselineAutoAdjustStatus()
ShutdownPolicy shutdownPolicy()
IgniteConfiguration.DFLT_SHUTDOWN_POLICY
if the property is not set.void shutdownPolicy(ShutdownPolicy shutdownPolicy)
IgniteConfiguration.setShutdownPolicy(ShutdownPolicy)
and persists to cluster meta storage.shutdownPolicy
- Shutdown policy.
Follow @ApacheIgnite
Ignite Database and Caching Platform : ver. 2.16.0 Release Date : December 15 2023