You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/orleans/implementation/cluster-membership.md
+1-39Lines changed: 1 addition & 39 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -122,45 +122,7 @@ As already mentioned, `IMembershipTable` is used as a rendezvous point for silos
122
122
123
123
1.[AWS DynamoDB](https://aws.amazon.com/dynamodb/) - In this implementation, we use the cluster Deployment ID as the Partition Key and Silo Identity (`ip-port-generation`) as the RangeKey making the record unity. The optimistic concurrency is made by the `ETag` attribute by making conditional writes on DynamoDB. The implementation logic is quite similar to Azure Table Storage.
124
124
125
-
1. In-memory emulation for development setup. We use a special system grain, called <xref:Orleans.Runtime.Configuration.GlobalConfiguration.LivenessProviderType.MembershipTableGrain>, for that implementation. This grain lives on a designated primary silo, which is only used for a **development setup**. In any real production usage primary silo **is not required**.
126
-
127
-
### Configuration
128
-
129
-
The membership protocol is configured via the `Liveness` element in the `Globals` section in _OrleansConfiguration.xml_ file. The default values were tuned in years of production usage in Azure and we believe they represent good default settings. There is no need in general to change them.
130
-
131
-
Sample config element:
132
-
133
-
```xml
134
-
<LivenessProbeTimeout="5s"
135
-
TableRefreshTimeout="10s"
136
-
DeathVoteExpirationTimeout="80s"
137
-
NumMissedProbesLimit="3"
138
-
NumProbedSilos="3"
139
-
NumVotesForDeathDeclaration="2" />
140
-
```
141
-
142
-
There are 4 types of liveness implemented. The type of the liveness protocol is configured via the `SystemStoreType` attribute of the `SystemStore` element in the `Globals` section in _OrleansConfiguration.xml_ file.
143
-
144
-
1.`MembershipTableGrain`: membership table is stored in a grain on the primary silo. This is a **development setup only**.
145
-
1.`AzureTable`: membership table is stored in Azure table.
146
-
1.`SqlServer`: membership table is stored in a relational database.
147
-
1.`ZooKeeper`: membership table is stored in a ZooKeeper [ensemble](https://zookeeper.apache.org/doc/r3.4.6/zookeeperAdmin.html#sc_zkMulitServerSetup).
148
-
1.`Consul`: configured as Custom system store with `MembershipTableAssembly = "OrleansConsulUtils"`. Refer to [Consul-Deployment](../deployment/consul-deployment.md) for more details.
149
-
1.`DynamoDB`: configured as a Custom system store with `MembershipTableAssembly = "OrleansAWSUtils"`.
150
-
151
-
For all liveness types the common configuration variables are defined in `Globals.Liveness` element:
152
-
153
-
1.`ProbeTimeout`: The number of seconds to probe other silos for their liveness or for the silo to send "I am alive" heartbeat messages about itself. Default is 10 seconds.
154
-
1.`TableRefreshTimeout`: The number of seconds to fetch updates from the membership table. Default is 60 seconds.
155
-
1.`DeathVoteExpirationTimeout`: Expiration time in seconds for death vote in the membership table. Default is 120 seconds
156
-
1.`NumMissedProbesLimit`: The number of missed "I am alive" heartbeat messages from a silo or number of un-replied probes that lead to suspecting this silo as dead. Default is 3.
157
-
1.`NumProbedSilos`: The number of silos each silo probes for liveness. Default is 3.
158
-
1.`NumVotesForDeathDeclaration`: The number of non-expired votes that are needed to declare some silo as dead (should be at most NumMissedProbesLimit). Default is 2.
159
-
1.`UseLivenessGossip`: Whether to use the gossip optimization to speed up spreading liveness information. Default is true.
160
-
1.`IAmAliveTablePublishTimeout`: The number of seconds to periodically write in the membership table that this silo is alive. Used only for diagnostics. Default is 5 minutes.
161
-
1.`NumMissedTableIAmAliveLimit`: The number of missed "I am alive" updates in the table from a silo that causes a warning to be logged. Does not impact the liveness protocol. Default is 2.
162
-
1.`MaxJoinAttemptTime`: The number of seconds to attempt to join a cluster of silos before giving up. Default is 5 minutes.
163
-
1.`ExpectedClusterSize`: The expected size of a cluster. Need not be very accurate, can be an overestimate. Used to tune the exponential backoff algorithm of retries to write to Azure table. Default is 20.
125
+
1. In-memory emulation for development setup. We use a special system grain for that implementation. This grain lives on a designated primary silo, which is only used for a **development setup**. In any real production usage primary silo **is not required**.
0 commit comments