Interface IClusterGroup
Defines grid projection which represents a common functionality over a group of nodes. Grid projection allows to group Ignite nodes into various subgroups to perform distributed operations on them. All ForXXX(...)' methods will create a child grid projection from existing projection. If you create a new projection from current one, then the resulting projection will include a subset of nodes from current projection. The following code snippet shows how to create grid projections:
var g = Ignition.GetIgnite();
// Projection over remote nodes.
var remoteNodes = g.ForRemotes();
// Projection over random remote node.
var randomNode = g.ForRandom();
// Projection over all nodes with cache named "myCache" enabled.
var cacheNodes = g.ForCacheNodes("myCache");
// Projection over all nodes that have user attribute "group" set to value "worker".
var workerNodes = g.ForAttribute("group", "worker");
Grid projection provides functionality for executing tasks and closures over nodes in this projection using GetCompute().
All members are thread-safe and may be used concurrently from multiple threads.
Namespace: Apache.Ignite.Core.Cluster
Assembly: Apache.Ignite.Core.dll
Syntax
public interface IClusterGroup
Properties
Ignite
Instance of Ignite.
Declaration
IIgnite Ignite { get; }
Property Value
| Type | Description |
|---|---|
| IIgnite |
Methods
ClearStatistics(IEnumerable<String>)
Clears statistics for caches cluster wide.
Declaration
void ClearStatistics(IEnumerable<string> caches)
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerable<System.String> | caches | Collection of cache names. |
EnableStatistics(IEnumerable<String>, Boolean)
Sets statistics enabled flag globally for the caches
Declaration
void EnableStatistics(IEnumerable<string> cacheNames, bool enabled)
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerable<System.String> | cacheNames | Collection of cache names to set the flag |
| System.Boolean | enabled | Enabled flag |
ForAttribute(String, String)
Creates projection for nodes containing given name and value specified in user attributes.
Declaration
IClusterGroup ForAttribute(string name, string val)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | name | Name of the attribute. |
| System.String | val | Optional attribute value to match. |
Returns
| Type | Description |
|---|---|
| IClusterGroup | Grid projection for nodes containing specified attribute. |
ForCacheNodes(String)
Creates projection for all nodes that have cache with specified name running.
Declaration
IClusterGroup ForCacheNodes(string name)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | name | Cache name to include into projection. |
Returns
| Type | Description |
|---|---|
| IClusterGroup | Projection over nodes that have specified cache running. |
ForClientNodes(String)
Creates projection for all nodes that have cache with specified name running and cache distribution mode is CLIENT_ONLY or NEAR_ONLY.
Declaration
IClusterGroup ForClientNodes(string name)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | name | Cache name to include into projection. |
Returns
| Type | Description |
|---|---|
| IClusterGroup | Projection over nodes that have specified cache running. |
ForDataNodes(String)
Creates projection for all nodes that have cache with specified name running and cache distribution mode is PARTITIONED_ONLY or NEAR_PARTITIONED.
Declaration
IClusterGroup ForDataNodes(string name)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | name | Cache name to include into projection. |
Returns
| Type | Description |
|---|---|
| IClusterGroup | Projection over nodes that have specified cache running. |
ForDotNet()
Creates grid projection for nodes supporting .Net, i.e. for nodes started with Apache.Ignite.exe.
Declaration
IClusterGroup ForDotNet()
Returns
| Type | Description |
|---|---|
| IClusterGroup | Grid projection for nodes supporting .Net. |
ForHost(IClusterNode)
Gets grid projection consisting from the nodes in this projection residing on the same host as given node.
Declaration
IClusterGroup ForHost(IClusterNode node)
Parameters
| Type | Name | Description |
|---|---|---|
| IClusterNode | node | Node residing on the host for which projection is created. |
Returns
| Type | Description |
|---|---|
| IClusterGroup | Projection for nodes residing on the same host as passed in node. |
ForNodeIds(Guid[])
Creates a grid projection over a given set of node IDs.
Declaration
IClusterGroup ForNodeIds(params Guid[] ids)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid[] | ids | Collection of node IDs to create a projection from. |
Returns
| Type | Description |
|---|---|
| IClusterGroup | Projection over provided Ignite node IDs. |
ForNodeIds(IEnumerable<Guid>)
Creates a grid projection over a given set of node IDs.
Declaration
IClusterGroup ForNodeIds(IEnumerable<Guid> ids)
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerable<Guid> | ids | Collection of node IDs to create a projection from. |
Returns
| Type | Description |
|---|---|
| IClusterGroup | Projection over provided Ignite node IDs. |
ForNodes(IClusterNode[])
Creates a grid projection over a given set of nodes.
Declaration
IClusterGroup ForNodes(params IClusterNode[] nodes)
Parameters
| Type | Name | Description |
|---|---|---|
| IClusterNode[] | nodes | Collection of nodes to create a projection from. |
Returns
| Type | Description |
|---|---|
| IClusterGroup | Projection over provided Ignite nodes. |
ForNodes(IEnumerable<IClusterNode>)
Creates a grid projection over a given set of nodes.
Declaration
IClusterGroup ForNodes(IEnumerable<IClusterNode> nodes)
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerable<IClusterNode> | nodes | Collection of nodes to create a projection from. |
Returns
| Type | Description |
|---|---|
| IClusterGroup | Projection over provided Ignite nodes. |
ForOldest()
Creates grid projection with one oldest node in the current projection. The resulting projection is dynamic and will always pick the next oldest node if the previous one leaves topology even after the projection has been created.
Declaration
IClusterGroup ForOldest()
Returns
| Type | Description |
|---|---|
| IClusterGroup | Grid projection with one oldest node from the current projection. |
ForPredicate(Func<IClusterNode, Boolean>)
Creates a grid projection which includes all nodes that pass the given predicate filter.
Declaration
IClusterGroup ForPredicate(Func<IClusterNode, bool> p)
Parameters
| Type | Name | Description |
|---|---|---|
| Func<IClusterNode, System.Boolean> | p | Predicate filter for nodes to include into this projection. |
Returns
| Type | Description |
|---|---|
| IClusterGroup | Grid projection for nodes that passed the predicate filter. |
ForRandom()
Creates grid projection with one random node from current projection.
Declaration
IClusterGroup ForRandom()
Returns
| Type | Description |
|---|---|
| IClusterGroup | Grid projection with one random node from current projection. |
ForRemotes()
Gets grid projection consisting from the nodes in this projection excluding the local node.
Declaration
IClusterGroup ForRemotes()
Returns
| Type | Description |
|---|---|
| IClusterGroup | Grid projection consisting from the nodes in this projection excluding the local node. |
ForServers()
Creates a cluster group of nodes started in server mode (ClientMode).
Declaration
IClusterGroup ForServers()
Returns
| Type | Description |
|---|---|
| IClusterGroup | Cluster group of nodes started in server mode. |
ForYoungest()
Creates grid projection with one youngest node in the current projection. The resulting projection is dynamic and will always pick the newest node in the topology, even if more nodes entered after the projection has been created.
Declaration
IClusterGroup ForYoungest()
Returns
| Type | Description |
|---|---|
| IClusterGroup | Grid projection with one youngest node from the current projection. |
GetCompute()
Gets compute functionality over this grid projection. All operations on the returned ICompute instance will only include nodes from this projection.
Declaration
ICompute GetCompute()
Returns
| Type | Description |
|---|---|
| ICompute | Compute instance over this grid projection. |
GetEvents()
Gets events facade over nodes within this cluster group. All operations on the returned IEvents> instance will only include nodes from current cluster group.
Declaration
IEvents GetEvents()
Returns
| Type | Description |
|---|---|
| IEvents | Events instance over this cluster group. |
GetMessaging()
Gets messaging facade over nodes within this cluster group. All operations on the returned IMessaging> instance will only include nodes from current cluster group.
Declaration
IMessaging GetMessaging()
Returns
| Type | Description |
|---|---|
| IMessaging | Messaging instance over this cluster group. |
GetMetrics()
Gets a metrics snapshot for this projection
Declaration
IClusterMetrics GetMetrics()
Returns
| Type | Description |
|---|---|
| IClusterMetrics | Grid projection metrics snapshot. |
GetNode()
Gets first node from the list of nodes in this projection.
Declaration
IClusterNode GetNode()
Returns
| Type | Description |
|---|---|
| IClusterNode | Node. |
GetNode(Guid)
Gets a node for given ID from this grid projection.
Declaration
IClusterNode GetNode(Guid id)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | id | Node ID. |
Returns
| Type | Description |
|---|---|
| IClusterNode | Node with given ID from this projection or null if such node does not exist in this projection. |
GetNodes()
Gets read-only collections of nodes in this projection.
Declaration
ICollection<IClusterNode> GetNodes()
Returns
| Type | Description |
|---|---|
| ICollection<IClusterNode> | All nodes in this projection. |
GetServices()
Gets services facade over nodes within this cluster group. All operations on the returned IServices> instance will only include nodes from current cluster group.
Declaration
IServices GetServices()
Returns
| Type | Description |
|---|---|
| IServices | Services instance over this cluster group. |