public class IgniteClusterAsyncImpl extends AsyncSupportAdapter<IgniteCluster> implements IgniteCluster, Externalizable
curFut| Constructor and Description |
|---|
IgniteClusterAsyncImpl()
Required by
Externalizable. |
IgniteClusterAsyncImpl(IgniteClusterImpl cluster) |
| Modifier and Type | Method and Description |
|---|---|
boolean |
active()
Checks Ignite grid is active or not active.
|
void |
active(boolean active)
Changes Ignite grid state to active or inactive.
|
IgniteFuture<?> |
clientReconnectFuture()
If local client node disconnected from cluster returns future
that will be completed when client reconnected.
|
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 |
forAttribute(String name,
Object val)
Creates a new cluster group for nodes containing given name and value
specified in user attributes.
|
ClusterGroup |
forCacheNodes(String cacheName)
Creates a cluster group for all nodes that have cache with specified name, either in client or server modes.
|
ClusterGroup |
forClientNodes(String cacheName)
Creates a cluster group for all client nodes that access cache with the specified name.
|
ClusterGroup |
forClients()
Creates a cluster group of nodes started in client mode.
|
ClusterGroup |
forDaemons()
Gets a cluster group consisting from the daemon nodes.
|
ClusterGroup |
forDataNodes(String cacheName)
Creates a cluster group for all data nodes that have the cache with the specified name running.
|
ClusterGroup |
forHost(ClusterNode node)
Gets cluster group consisting from the nodes in this cluster group residing on the
same host as the given node.
|
ClusterGroup |
forHost(String host,
String... hosts)
Gets cluster group consisting from the nodes running on the hosts specified.
|
ClusterGroup |
forLocal()
Gets a cluster group consisting from the local node.
|
ClusterGroup |
forNode(ClusterNode node,
ClusterNode... nodes)
Creates a cluster group for the given node.
|
ClusterGroup |
forNodeId(UUID id,
UUID... ids)
Creates a cluster group for a node with the specified ID.
|
ClusterGroup |
forNodeIds(Collection<UUID> ids)
Creates a cluster group over nodes with specified node IDs.
|
ClusterGroup |
forNodes(Collection<? extends ClusterNode> nodes)
Creates a cluster group over a given set of nodes.
|
ClusterGroup |
forOldest()
Creates a cluster group with one oldest node from the current cluster group.
|
ClusterGroup |
forOthers(ClusterGroup prj)
Creates a cluster group for nodes not included into the given cluster group.
|
ClusterGroup |
forOthers(ClusterNode node,
ClusterNode... nodes)
Creates a cluster group for nodes other than the given nodes.
|
ClusterGroup |
forPredicate(IgnitePredicate<ClusterNode> p)
Creates a new cluster group which includes all nodes that pass the given predicate filter.
|
ClusterGroup |
forRandom()
Creates a cluster group with one random node from the current cluster group.
|
ClusterGroup |
forRemotes()
Gets cluster group consisting from the nodes in this cluster group excluding the local node.
|
ClusterGroup |
forServers()
Creates a cluster group of nodes started in server mode.
|
ClusterGroup |
forYoungest()
Creates a cluster group with one youngest node in the current cluster group.
|
Collection<String> |
hostNames()
Gets the read-only collection of hostnames in this cluster group.
|
Ignite |
ignite()
Gets instance of grid.
|
boolean |
isWalEnabled(String cacheName)
Checks if write-ahead logging is enabled for specified cache.
|
ClusterNode |
localNode()
Gets local grid node.
|
ClusterMetrics |
metrics()
Gets a metrics snapshot for this cluster group.
|
ClusterNode |
node()
Gets first node from the list of nodes in this cluster group.
|
ClusterNode |
node(UUID id)
Gets a node for given ID from this cluster group.
|
<K,V> ConcurrentMap<K,V> |
nodeLocalMap()
Gets node-local storage instance.
|
Collection<ClusterNode> |
nodes()
Gets the read-only collection of nodes in this cluster group.
|
boolean |
pingNode(UUID nodeId)
Pings a remote node.
|
IgnitePredicate<ClusterNode> |
predicate()
Gets predicate that defines a subset of nodes for this cluster group.
|
void |
readExternal(ObjectInput in) |
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).
|
Collection<ClusterStartNodeResult> |
startNodes(Collection<Map<String,Object>> hosts,
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,
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.
|
void |
stopNodes()
Stops nodes satisfying optional set of predicates.
|
void |
stopNodes(Collection<UUID> ids)
Stops nodes defined by provided IDs.
|
Collection<ClusterNode> |
topology(long topVer)
Gets a topology by version.
|
long |
topologyVersion()
Gets current topology version.
|
void |
writeExternal(ObjectOutput out) |
createAsyncInstance, createFuture, future, future, isAsync, saveOrGet, withAsyncclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitwithAsyncfuture, isAsyncpublic IgniteClusterAsyncImpl()
Externalizable.public IgniteClusterAsyncImpl(IgniteClusterImpl cluster)
cluster - Cluster.public ClusterNode localNode()
localNode in interface IgniteClusterpublic ClusterGroup forLocal()
forLocal in interface IgniteClusterpublic <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.
nodeLocalMap in interface IgniteClusterpublic 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.
pingNode in interface IgniteClusternodeId - ID of a node to ping.true if node for a given ID is alive, false otherwise.DiscoverySpipublic 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.topologyVersion in interface IgniteCluster@Nullable public Collection<ClusterNode> topology(long topVer)
null if topology history storage doesn't contain
specified topology version (history currently keeps last 1000 snapshots).topology in interface IgniteClustertopVer - Topology version.null otherwise.public Collection<ClusterStartNodeResult> startNodes(File file, boolean restart, int timeout, int maxConn)
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).
startNodes in interface IgniteClusterfile - 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.public 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.
startNodesAsync in interface IgniteClusterfile - 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.public Collection<ClusterStartNodeResult> startNodes(Collection<Map<String,Object>> hosts, @Nullable Map<String,Object> dflts, boolean restart, int timeout, int maxConn)
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).
startNodes in interface IgniteClusterhosts - 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.public IgniteFuture<Collection<ClusterStartNodeResult>> startNodesAsync(Collection<Map<String,Object>> hosts, @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.
startNodesAsync in interface IgniteClusterhosts - 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.public void stopNodes()
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.
stopNodes in interface IgniteClusterpublic void stopNodes(Collection<UUID> ids)
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.
stopNodes in interface IgniteClusterids - IDs defining nodes to stop.public void restartNodes()
NOTE: this command only works for grid nodes started with Ignition
ignite.sh or ignite.bat scripts.
restartNodes in interface IgniteClusterpublic void restartNodes(Collection<UUID> ids)
NOTE: this command only works for grid nodes started with Ignition
ignite.sh or ignite.bat scripts.
restartNodes in interface IgniteClusterids - IDs defining nodes to restart.public void resetMetrics()
resetMetrics in interface IgniteClusterpublic void enableStatistics(Collection<String> caches, boolean enabled)
enableStatistics in interface IgniteClustercaches - Collection of cache names.enabled - Statistics enabled flag.public Ignite ignite()
ignite in interface ClusterGrouppublic ClusterGroup forNodes(Collection<? extends ClusterNode> nodes)
forNodes in interface ClusterGroupnodes - Collection of nodes to create the cluster group from.public ClusterGroup forNode(ClusterNode node, ClusterNode... nodes)
forNode in interface ClusterGroupnode - Node to create cluster group for.nodes - Optional additional nodes to include into the cluster group.public ClusterGroup forOthers(ClusterNode node, ClusterNode... nodes)
forOthers in interface ClusterGroupnode - Node to exclude from the new cluster group.nodes - Optional additional nodes to exclude from the cluster group.public ClusterGroup forOthers(ClusterGroup prj)
forOthers in interface ClusterGroupprj - Cluster group to exclude from the new cluster group.public ClusterGroup forNodeIds(Collection<UUID> ids)
forNodeIds in interface ClusterGroupids - Collection of node IDs.public ClusterGroup forNodeId(UUID id, UUID... ids)
forNodeId in interface ClusterGroupid - Node ID to get the cluster group for.ids - Optional additional node IDs to include into the cluster group.public ClusterGroup forPredicate(IgnitePredicate<ClusterNode> p)
forPredicate in interface ClusterGroupp - Predicate filter for nodes to include into the cluster group.public ClusterGroup forAttribute(String name, @Nullable Object val)
User attributes for every node are optional and can be specified in
grid node configuration. See IgniteConfiguration.getUserAttributes()
for more information.
forAttribute in interface ClusterGroupname - Name of the attribute.val - Optional attribute value to match.public ClusterGroup forServers()
forServers in interface ClusterGroupIgnition.setClientMode(boolean),
IgniteConfiguration.setClientMode(boolean)public ClusterGroup forClients()
forClients in interface ClusterGroupIgnition.setClientMode(boolean),
IgniteConfiguration.setClientMode(boolean)public ClusterGroup forCacheNodes(String cacheName)
forCacheNodes in interface ClusterGroupcacheName - Cache name.public ClusterGroup forDataNodes(String cacheName)
forDataNodes in interface ClusterGroupcacheName - Cache name.public ClusterGroup forClientNodes(String cacheName)
forClientNodes in interface ClusterGroupcacheName - Cache name.public ClusterGroup forRemotes()
forRemotes in interface ClusterGrouppublic ClusterGroup forHost(ClusterNode node)
forHost in interface ClusterGroupnode - Node to select the host for.public ClusterGroup forHost(String host, String... hosts)
forHost in interface ClusterGrouphost - Host name to get nodes to put in clusterhosts - Host names to get nodes to put in cluster.public ClusterGroup forDaemons()
Daemon nodes are the usual grid nodes that participate in topology but not visible on the main APIs, i.e. they are not part of any cluster group. The only way to see daemon nodes is to use this method.
Daemon nodes are used primarily for management and monitoring functionality that is build on Ignite and needs to participate in the topology, but also needs to be excluded from the "normal" topology, so that it won't participate in the task execution or in-memory data grid storage.
forDaemons in interface ClusterGrouppublic ClusterGroup forRandom()
forRandom in interface ClusterGrouppublic ClusterGroup forOldest()
Use ClusterGroup.node() method to get the oldest node.
forOldest in interface ClusterGrouppublic ClusterGroup forYoungest()
forYoungest in interface ClusterGrouppublic Collection<ClusterNode> nodes()
nodes in interface ClusterGroup@Nullable public ClusterNode node(UUID id)
node in interface ClusterGroupid - Node ID.null, if such node does not exist.public Collection<String> hostNames()
hostNames in interface ClusterGroup@Nullable public ClusterNode node()
node in interface ClusterGroupnull if the cluster group is empty.public IgnitePredicate<ClusterNode> predicate()
predicate in interface ClusterGrouppublic ClusterMetrics metrics()
metrics in interface ClusterGrouppublic boolean active()
active in interface IgniteClusterTrue if grid is active. False If grid is not active.public void active(boolean active)
active in interface IgniteClusteractive - If True start activation process. If False start deactivation process.@Nullable public Collection<BaselineNode> currentBaselineTopology()
null.currentBaselineTopology in interface IgniteClusterpublic void setBaselineTopology(Collection<? extends BaselineNode> baselineTop)
setBaselineTopology in interface IgniteClusterbaselineTop - A collection of nodes to be included to the baseline topology.public void setBaselineTopology(long topVer)
setBaselineTopology in interface IgniteClustertopVer - Topology version to set.@Nullable public IgniteFuture<?> clientReconnectFuture()
clientReconnectFuture in interface IgniteClusterpublic boolean enableWal(String cacheName) throws IgniteException
IgniteCluster.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.
enableWal in interface IgniteClustercacheName - Cache name.IgniteException - If error occurs.IgniteCluster.disableWal(String),
IgniteCluster.isWalEnabled(String)public 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.
disableWal in interface IgniteClustercacheName - Cache name.IgniteException - If error occurs.IgniteCluster.enableWal(String),
IgniteCluster.isWalEnabled(String)public boolean isWalEnabled(String cacheName)
isWalEnabled in interface IgniteClustercacheName - Cache name.True if WAL is enabled for cache.IgniteCluster.disableWal(String),
IgniteCluster.enableWal(String)public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException
readExternal in interface ExternalizableIOExceptionClassNotFoundExceptionpublic void writeExternal(ObjectOutput out) throws IOException
writeExternal in interface ExternalizableIOException
Follow @ApacheIgnite
Ignite Fabric : ver. 2.4.0 Release Date : March 5 2018