Show / Hide Table of Contents

# Namespace Apache.Ignite.Core.Cluster

### Classes

#### ClusterGroupEmptyException

Indicates an illegal call on empty projection. Thrown by projection when operation that requires at least one node is called on empty projection.

#### ClusterTopologyException

Indicates an error with grid topology (e.g., crashed node, etc.)

### Interfaces

#### IBaselineNode

Baseline topology node (see GetBaselineTopology()).

#### ICluster

Represents whole cluster (group of all nodes in a cluster).

All members are thread-safe and may be used concurrently from multiple threads.

#### 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.

#### IClusterMetrics

Represents runtime information of a cluster. Apart from obvious statistical value, this information is used for implementation of load balancing, failover, and collision SPIs. For example, collision SPI in combination with fail-over SPI could check if other nodes don't have any active or waiting jobs and fail-over some jobs to those nodes.

Node metrics for any node can be accessed via GetMetrics() method. Keep in mind that there will be a certain network delay (usually equal to heartbeat delay) for the accuracy of node metrics. However, when accessing metrics on local node the metrics are always accurate and up to date.

#### IClusterNode

Interface representing a single cluster node. Use GetAttribute<T>(String) or GetMetrics() to get static and dynamic information about remote nodes. You can get a list of all nodes in grid by calling GetNodes() on IIgnite instance.

You can use Ignite node attributes to provide static information about a node. This information is initialized once within grid, during node startup, and remains the same throughout the lifetime of a node.

All members are thread-safe and may be used concurrently from multiple threads.

#### IClusterNodeFilter

Represents cluster node filter.