Class ClusterGroupAdapter
- java.lang.Object
-
- org.apache.ignite.internal.cluster.ClusterGroupAdapter
-
- All Implemented Interfaces:
Externalizable,Serializable,ClusterGroup,ClusterGroupEx
- Direct Known Subclasses:
IgniteClusterImpl
public class ClusterGroupAdapter extends Object implements ClusterGroupEx, Externalizable
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected GridKernalContextctxKernal context.protected IgnitePredicate<ClusterNode>pCluster group predicate.
-
Constructor Summary
Constructors Modifier Constructor Description ClusterGroupAdapter()Required byExternalizable.protectedClusterGroupAdapter(@Nullable GridKernalContext ctx, @Nullable IgnitePredicate<ClusterNode> p)protectedClusterGroupAdapter(@Nullable GridKernalContext ctx, Set<UUID> ids)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description IgniteComputecompute()protected org.apache.ignite.internal.cluster.ClusterGroupAdapter.ClusterGroupStateensureLastTopologyState()IgniteEventsevents()ExecutorServiceexecutorService()ClusterGroupforAttribute(String name, @Nullable Object val)Creates a new cluster group for nodes containing given name and value specified in user attributes.ClusterGroupforCacheNodes(String cacheName)Creates a cluster group for all nodes that have cache with specified name, either in client or server modes.ClusterGroupforCacheNodes(String cacheName, boolean affNodes, boolean nearNodes, boolean clientNodes)ClusterGroupforClientNodes(String cacheName)Creates a cluster group for all client nodes that access cache with the specified name.ClusterGroupforClients()Creates a cluster group of nodes started in client mode.ClusterGroupforDataNodes(String cacheName)Creates a cluster group for all data nodes that have the cache with the specified name running.ClusterGroupforHost(String host, String... hosts)Gets cluster group consisting from the nodes running on the hosts specified.ClusterGroupforHost(ClusterNode node)Gets cluster group consisting from the nodes in this cluster group residing on the same host as the given node.ClusterGroupforNode(ClusterNode node, ClusterNode... nodes)Creates a cluster group for the given node.ClusterGroupforNodeId(UUID id, UUID... ids)Creates a cluster group for a node with the specified ID.ClusterGroupforNodeIds(Collection<UUID> ids)Creates a cluster group over nodes with specified node IDs.ClusterGroupforNodes(Collection<? extends ClusterNode> nodes)Creates a cluster group over a given set of nodes.ClusterGroupforOldest()Creates a cluster group with one oldest node from the current cluster group.ClusterGroupforOthers(ClusterGroup grp)Creates a cluster group for nodes not included into the given cluster group.ClusterGroupforOthers(ClusterNode node, ClusterNode... nodes)Creates a cluster group for nodes other than the given nodes.ClusterGroupforPredicate(IgnitePredicate<ClusterNode> p)Creates a new cluster group which includes all nodes that pass the given predicate filter.ClusterGroupforRandom()Creates a cluster group with one random node from the current cluster group.ClusterGroupforRemotes()Gets cluster group consisting from the nodes in this cluster group excluding the local node.ClusterGroupforServers()Creates a cluster group of nodes started in server mode.ClusterGroupforYoungest()Creates a cluster group with one youngest node in the current cluster group.protected voidguard()ctx.gateway().readLock()Collection<String>hostNames()Gets the read-only collection of hostnames in this cluster group.Igniteignite()Gets instance of grid.IgniteMessagingmessage()ClusterMetricsmetrics()Gets a metrics snapshot for this cluster group.ClusterNodenode()Gets first node from the list of nodes in this cluster group.ClusterNodenode(UUID id)Gets a node for given ID from this cluster group.Collection<ClusterNode>nodes()Gets the read-only collection of nodes in this cluster group.IgnitePredicate<ClusterNode>predicate()Gets predicate that defines a subset of nodes for this cluster group.voidreadExternal(ObjectInput in)protected ObjectreadResolve()Reconstructs object on unmarshalling.protected org.apache.ignite.internal.cluster.ClusterGroupAdapter.ClusterGroupStateresetState()protected Collection<ClusterNode>resolveCurrentNodes()IgniteServicesservices()voidsetKernalContext(GridKernalContext ctx)Sets kernal context.protected voidunguard()ctx.gateway().readUnlock()voidwriteExternal(ObjectOutput out)
-
-
-
Field Detail
-
ctx
protected transient GridKernalContext ctx
Kernal context.
-
p
protected IgnitePredicate<ClusterNode> p
Cluster group predicate.
-
-
Constructor Detail
-
ClusterGroupAdapter
public ClusterGroupAdapter()
Required byExternalizable.
-
ClusterGroupAdapter
protected ClusterGroupAdapter(@Nullable @Nullable GridKernalContext ctx, @Nullable @Nullable IgnitePredicate<ClusterNode> p)- Parameters:
ctx- Kernal context.p- Predicate.
-
ClusterGroupAdapter
protected ClusterGroupAdapter(@Nullable @Nullable GridKernalContext ctx, Set<UUID> ids)- Parameters:
ctx- Kernal context.ids- Node IDs.
-
-
Method Detail
-
guard
protected void guard()
ctx.gateway().readLock()
-
unguard
protected void unguard()
ctx.gateway().readUnlock()
-
setKernalContext
public void setKernalContext(GridKernalContext ctx)
Sets kernal context.- Parameters:
ctx- Kernal context to set.
-
ignite
public final Ignite ignite()
Gets instance of grid.- Specified by:
ignitein interfaceClusterGroup- Returns:
- Grid instance.
-
compute
public final IgniteCompute compute()
- Returns:
IgniteComputefor this cluster group.
-
message
public final IgniteMessaging message()
- Returns:
IgniteMessagingfor this cluster group.
-
events
public final IgniteEvents events()
- Returns:
IgniteEventsfor this cluster group.
-
services
public IgniteServices services()
- Returns:
IgniteServicesfor this cluster group.
-
executorService
public ExecutorService executorService()
- Returns:
ExecutorServicefor this cluster group.
-
metrics
public final ClusterMetrics metrics()
Gets a metrics snapshot for this cluster group.- Specified by:
metricsin interfaceClusterGroup- Returns:
- Metrics snapshot.
-
nodes
public Collection<ClusterNode> nodes()
Gets the read-only collection of nodes in this cluster group.- Specified by:
nodesin interfaceClusterGroup- Returns:
- All nodes in this cluster group.
-
resolveCurrentNodes
protected Collection<ClusterNode> resolveCurrentNodes()
-
hostNames
public Collection<String> hostNames()
Gets the read-only collection of hostnames in this cluster group.- Specified by:
hostNamesin interfaceClusterGroup- Returns:
- All hostnames in this cluster group.
-
node
public final ClusterNode node(UUID id)
Gets a node for given ID from this cluster group.- Specified by:
nodein interfaceClusterGroup- Parameters:
id- Node ID.- Returns:
- Node with given ID from this cluster group or
null, if such node does not exist.
-
node
public ClusterNode node()
Gets first node from the list of nodes in this cluster group. This method is specifically useful for cluster groups with one node only.- Specified by:
nodein interfaceClusterGroup- Returns:
- First node from the list of nodes in this cluster group or
nullif the cluster group is empty.
-
predicate
public IgnitePredicate<ClusterNode> predicate()
Gets predicate that defines a subset of nodes for this cluster group.- Specified by:
predicatein interfaceClusterGroup- Returns:
- Predicate that defines a subset of nodes for this cluster group.
-
forPredicate
public ClusterGroup forPredicate(IgnitePredicate<ClusterNode> p)
Creates a new cluster group which includes all nodes that pass the given predicate filter.- Specified by:
forPredicatein interfaceClusterGroup- Parameters:
p- Predicate filter for nodes to include into the cluster group.- Returns:
- Cluster group for nodes that passed the predicate filter.
-
forAttribute
public final ClusterGroup forAttribute(String name, @Nullable @Nullable Object val)
Creates a new cluster group for nodes containing given name and value specified in user attributes.User attributes for every node are optional and can be specified in grid node configuration. See
IgniteConfiguration.getUserAttributes()for more information.- Specified by:
forAttributein interfaceClusterGroup- Parameters:
name- Name of the attribute.val- Optional attribute value to match.- Returns:
- Cluster group for nodes containing specified attribute.
-
forServers
public ClusterGroup forServers()
Creates a cluster group of nodes started in server mode.- Specified by:
forServersin interfaceClusterGroup- Returns:
- Cluster group of nodes started in server mode.
- See Also:
Ignition.setClientMode(boolean),IgniteConfiguration.setClientMode(boolean)
-
forClients
public ClusterGroup forClients()
Creates a cluster group of nodes started in client mode.- Specified by:
forClientsin interfaceClusterGroup- Returns:
- Cluster group of nodes started in client mode.
- See Also:
Ignition.setClientMode(boolean),IgniteConfiguration.setClientMode(boolean)
-
forNode
public final ClusterGroup forNode(ClusterNode node, ClusterNode... nodes)
Creates a cluster group for the given node.- Specified by:
forNodein interfaceClusterGroup- Parameters:
node- Node to create cluster group for.nodes- Optional additional nodes to include into the cluster group.- Returns:
- Cluster group for the given nodes.
-
forNodes
public final ClusterGroup forNodes(Collection<? extends ClusterNode> nodes)
Creates a cluster group over a given set of nodes.- Specified by:
forNodesin interfaceClusterGroup- Parameters:
nodes- Collection of nodes to create the cluster group from.- Returns:
- Cluster group for the provided grid nodes.
-
forNodeId
public final ClusterGroup forNodeId(UUID id, UUID... ids)
Creates a cluster group for a node with the specified ID.- Specified by:
forNodeIdin interfaceClusterGroup- Parameters:
id- Node ID to get the cluster group for.ids- Optional additional node IDs to include into the cluster group.- Returns:
- Cluster group over the node with the specified node IDs.
-
forNodeIds
public final ClusterGroup forNodeIds(Collection<UUID> ids)
Creates a cluster group over nodes with specified node IDs.- Specified by:
forNodeIdsin interfaceClusterGroup- Parameters:
ids- Collection of node IDs.- Returns:
- Cluster group over nodes with the specified node IDs.
-
forOthers
public final ClusterGroup forOthers(ClusterNode node, ClusterNode... nodes)
Creates a cluster group for nodes other than the given nodes.- Specified by:
forOthersin interfaceClusterGroup- Parameters:
node- Node to exclude from the new cluster group.nodes- Optional additional nodes to exclude from the cluster group.- Returns:
- Cluster group that will contain all nodes from the original cluster group excluding the given nodes.
-
forOthers
public ClusterGroup forOthers(ClusterGroup grp)
Creates a cluster group for nodes not included into the given cluster group.- Specified by:
forOthersin interfaceClusterGroup- Parameters:
grp- Cluster group to exclude from the new cluster group.- Returns:
- Cluster group for nodes not included into the given cluster group.
-
forRemotes
public final ClusterGroup forRemotes()
Gets cluster group consisting from the nodes in this cluster group excluding the local node.- Specified by:
forRemotesin interfaceClusterGroup- Returns:
- Cluster group consisting from the nodes in this cluster group excluding the local node.
-
forCacheNodes
public final ClusterGroup forCacheNodes(String cacheName)
Creates a cluster group for all nodes that have cache with specified name, either in client or server modes.- Specified by:
forCacheNodesin interfaceClusterGroup- Parameters:
cacheName- Cache name.- Returns:
- Cluster group over nodes that have specified cache running.
-
forDataNodes
public final ClusterGroup forDataNodes(String cacheName)
Creates a cluster group for all data nodes that have the cache with the specified name running.- Specified by:
forDataNodesin interfaceClusterGroup- Parameters:
cacheName- Cache name.- Returns:
- Cluster group over nodes that have the cache with the specified name running.
-
forClientNodes
public final ClusterGroup forClientNodes(String cacheName)
Creates a cluster group for all client nodes that access cache with the specified name.- Specified by:
forClientNodesin interfaceClusterGroup- Parameters:
cacheName- Cache name.- Returns:
- Cluster group over nodes that have the specified cache running.
-
forCacheNodes
public ClusterGroup forCacheNodes(String cacheName, boolean affNodes, boolean nearNodes, boolean clientNodes)
- Specified by:
forCacheNodesin interfaceClusterGroupEx- Parameters:
cacheName- Cache name.affNodes- Flag to include affinity nodes.nearNodes- Flag to include near nodes.clientNodes- Flag to include client nodes.- Returns:
- Cluster group.
-
forHost
public final ClusterGroup forHost(ClusterNode node)
Gets cluster group consisting from the nodes in this cluster group residing on the same host as the given node.- Specified by:
forHostin interfaceClusterGroup- Parameters:
node- Node to select the host for.- Returns:
- Cluster group for nodes residing on the same host as the specified node.
-
forHost
public final ClusterGroup forHost(String host, String... hosts)
Gets cluster group consisting from the nodes running on the hosts specified.- Specified by:
forHostin interfaceClusterGroup- Parameters:
host- Host name to get nodes to put in clusterhosts- Host names to get nodes to put in cluster.- Returns:
- Cluster group for nodes residing on the hosts specified.
-
forRandom
public final ClusterGroup forRandom()
Creates a cluster group with one random node from the current cluster group.- Specified by:
forRandomin interfaceClusterGroup- Returns:
- Cluster group containing one random node from the current cluster group.
-
forOldest
public ClusterGroup forOldest()
Creates a cluster group with one oldest node from the current cluster group. The resulting cluster group is dynamic and will always pick the next oldest node if the previous one leaves topology even after the cluster group has been created.Use
ClusterGroup.node()method to get the oldest node.- Specified by:
forOldestin interfaceClusterGroup- Returns:
- Cluster group containing one oldest node from the current cluster group.
-
forYoungest
public ClusterGroup forYoungest()
Creates a cluster group with one youngest node in the current cluster group. The resulting cluster group is dynamic and will always pick the newest node in the topology, even if more nodes entered after the cluster group has been created.- Specified by:
forYoungestin interfaceClusterGroup- Returns:
- Cluster group containing one youngest node from the current cluster group.
-
ensureLastTopologyState
protected final org.apache.ignite.internal.cluster.ClusterGroupAdapter.ClusterGroupState ensureLastTopologyState()
-
resetState
protected org.apache.ignite.internal.cluster.ClusterGroupAdapter.ClusterGroupState resetState()
-
writeExternal
public void writeExternal(ObjectOutput out) throws IOException
- Specified by:
writeExternalin interfaceExternalizable- Throws:
IOException
-
readExternal
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException
- Specified by:
readExternalin interfaceExternalizable- Throws:
IOExceptionClassNotFoundException
-
readResolve
protected Object readResolve() throws ObjectStreamException
Reconstructs object on unmarshalling.- Returns:
- Reconstructed object.
- Throws:
ObjectStreamException- Thrown in case of unmarshalling error.
-
-