Cluster Information
One of the core concepts of GigaSpaces processing units is the fact that the clustering topology of the processing unit is determined at deployment time. Therefore, when building a processing unit, there is almost no need to be aware of the actual clustering topology with which the processing unit is deployed. However, in some cases you may want your processing unit to be aware of it. This mechanism is also used internally by the platform to maintain the clustering information when deploying a space for example.
Available Cluster Information
As mentioned above the cluster information is passed to the components of each processing unit instance via an instance of the GigaSpaces.Core.ClusterInfo
class, which holds the following information:
Attribute Name | Description |
---|---|
Schema | If the processing unit contains an embedded space, the cluster schema of that space |
NumberOfInstances | The number of instances of the processing unit. If the processing unit contains an embedded space, denotes the number of primary instances |
NumberOfBackups | If the processing unit contains an embedded space with backups, denotes the number of backups per primary instance The number of backups per partition is zero or one. |
InstanceId | A value between 1 to numberOfInstances , denoting the instance ID of the processing unit instance |
BackupId | A value of zero or 1, denoting the backup ID of the processing instance. If the processing unit instance is not a backup, then null is returned. |
RunningNumber | A running number of the processing unit instance instance. Takes into account different topologies and provides a unique identifier (starting from 0 ) of the processing unit instance within the cluster |
null
value for one of these properties means that they are not applicable for the processing unit instance at hand or the used deployment topology.
Obtaining the Cluster Information
The cluster information is injected to the processing unit container at runtime and is available throughout it's lifecycle using the singleton ProcessingUnitContainer.Current.ClusterInfo
.