# ClusterMembershipOptions Properties

[Type overview](/orleans/docs/api/csharp/microsoft.orleans.core/orleans.configuration.clustermembershipoptions/)

## DeathVoteExpirationTimeout {#deathvoteexpirationtimeout-ec1604e5}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.core/orleans.configuration.clustermembershipoptions/properties/deathvoteexpirationtimeout-ec1604e5/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Core/Configuration/Options/ClusterMembershipOptions.cs)

```csharp
public TimeSpan DeathVoteExpirationTimeout
```

Gets or sets the expiration time for votes in the membership table.

### Value

Votes expire after 2 minutes by default.

## DefunctSiloCleanupPeriod {#defunctsilocleanupperiod-834b9c1f}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.core/orleans.configuration.clustermembershipoptions/properties/defunctsilocleanupperiod-834b9c1f/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Core/Configuration/Options/ClusterMembershipOptions.cs)

```csharp
public TimeSpan? DefunctSiloCleanupPeriod
```

Gets or sets a value indicating whether defunct silo entries older than [ClusterMembershipOptions](/orleans/docs/api/csharp/microsoft.orleans.core/orleans.configuration.clustermembershipoptions/) are removed. Cleanup is attempted when membership changes are observed and the current membership snapshot contains expired non-active entries, or when this period has elapsed since the last cleanup call. Set this value to `null` to disable expiration-based cleanup.

### Value

Expiration-based cleanup is enabled by default.

## DefunctSiloExpiration {#defunctsiloexpiration-c3321c8a}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.core/orleans.configuration.clustermembershipoptions/properties/defunctsiloexpiration-c3321c8a/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Core/Configuration/Options/ClusterMembershipOptions.cs)

```csharp
public TimeSpan DefunctSiloExpiration
```

Gets or sets the period of time after which membership entries for defunct silos are eligible for removal. Valid only if [ClusterMembershipOptions](/orleans/docs/api/csharp/microsoft.orleans.core/orleans.configuration.clustermembershipoptions/) is not `null`.

### Value

Defunct silos are eligible for removal from membership after one week by default.

## EnableIndirectProbes {#enableindirectprobes-83756ffc}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.core/orleans.configuration.clustermembershipoptions/properties/enableindirectprobes-83756ffc/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Core/Configuration/Options/ClusterMembershipOptions.cs)

```csharp
public bool EnableIndirectProbes
```

Gets or sets a value indicating whether to enable probing silos indirectly, via other silos.

## EvictWhenMaxJoinAttemptTimeExceeded {#evictwhenmaxjoinattempttimeexceeded-57a06798}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.core/orleans.configuration.clustermembershipoptions/properties/evictwhenmaxjoinattempttimeexceeded-57a06798/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Core/Configuration/Options/ClusterMembershipOptions.cs)

```csharp
public bool EvictWhenMaxJoinAttemptTimeExceeded
```

Gets or sets a value indicating whether to enable membership eviction of silos when they remain in the `Joining` or `Created` state for longer than [ClusterMembershipOptions](/orleans/docs/api/csharp/microsoft.orleans.core/orleans.configuration.clustermembershipoptions/).

## ExtendProbeTimeoutDuringDegradation {#extendprobetimeoutduringdegradation-c304fdaa}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.core/orleans.configuration.clustermembershipoptions/properties/extendprobetimeoutduringdegradation-c304fdaa/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Core/Configuration/Options/ClusterMembershipOptions.cs)

```csharp
public bool ExtendProbeTimeoutDuringDegradation
```

Gets or sets a value indicating whether to extend the effective [ClusterMembershipOptions](/orleans/docs/api/csharp/microsoft.orleans.core/orleans.configuration.clustermembershipoptions/) value based upon current local health degradation.

## IAmAliveTablePublishTimeout {#iamalivetablepublishtimeout-d415f069}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.core/orleans.configuration.clustermembershipoptions/properties/iamalivetablepublishtimeout-d415f069/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Core/Configuration/Options/ClusterMembershipOptions.cs)

```csharp
public TimeSpan IAmAliveTablePublishTimeout
```

Gets or sets the period between updating this silo's heartbeat in the membership table.

### Value

Publish an update every 30 seconds by default.

## LivenessEnabled {#livenessenabled-b94786b8}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.core/orleans.configuration.clustermembershipoptions/properties/livenessenabled-b94786b8/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Core/Configuration/Options/ClusterMembershipOptions.cs)

```csharp
public bool LivenessEnabled
```

Gets or sets a value indicating whether the silo liveness protocol is enabled (should be disabled only for testing). If a silo is suspected to be down, but this property is set to `false`, the suspicions will not be propagated to the system or enforced. This property is intended for use only for testing and troubleshooting. In production, liveness should always be enabled.

### Value

Liveness is enabled by default.

## LocalHealthDegradationMonitoringPeriod {#localhealthdegradationmonitoringperiod-605e9e63}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.core/orleans.configuration.clustermembershipoptions/properties/localhealthdegradationmonitoringperiod-605e9e63/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Core/Configuration/Options/ClusterMembershipOptions.cs)

```csharp
public TimeSpan LocalHealthDegradationMonitoringPeriod
```

Gets or sets the period between self-tests to log local health degradation status.

### Value

The local host will perform a self-test every ten seconds by default.

## MaxDefunctSiloEntries {#maxdefunctsiloentries-a4c04120}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.core/orleans.configuration.clustermembershipoptions/properties/maxdefunctsiloentries-a4c04120/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Core/Configuration/Options/ClusterMembershipOptions.cs)

```csharp
public int? MaxDefunctSiloEntries
```

Gets or sets the maximum number of defunct silo entries to retain in the membership table. When this limit is exceeded, the first active silo, selected by natural [SiloAddress](/orleans/docs/api/csharp/microsoft.orleans.core.abstractions/orleans.runtime.siloaddress/) sort order, asynchronously removes the oldest excess defunct entries from the membership table. Set this value to `null` to retain all defunct entries and disable threshold-based cleanup.

### Value

Membership retains up to 25 defunct silo entries by default.

## MaxJoinAttemptTime {#maxjoinattempttime-e252b815}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.core/orleans.configuration.clustermembershipoptions/properties/maxjoinattempttime-e252b815/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Core/Configuration/Options/ClusterMembershipOptions.cs)

```csharp
public TimeSpan MaxJoinAttemptTime
```

Gets or sets the maximum amount of time to attempt to join a cluster before giving up.

### Value

Attempt to join for 5 minutes before giving up by default.

## NumMissedProbesLimit {#nummissedprobeslimit-6ead8012}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.core/orleans.configuration.clustermembershipoptions/properties/nummissedprobeslimit-6ead8012/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Core/Configuration/Options/ClusterMembershipOptions.cs)

```csharp
public int NumMissedProbesLimit
```

Gets or sets the number of missed probe requests from a silo that lead to suspecting this silo as down.

### Value

A silo will be suspected as being down if three probes are missed, by default.

## NumMissedTableIAmAliveLimit {#nummissedtableiamalivelimit-9cd1fc19}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.core/orleans.configuration.clustermembershipoptions/properties/nummissedtableiamalivelimit-9cd1fc19/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Core/Configuration/Options/ClusterMembershipOptions.cs)

```csharp
public int NumMissedTableIAmAliveLimit
```

Gets or sets the number of missed "I am alive" updates in the table from a silo that causes warning to be logged.

## NumProbedSilos {#numprobedsilos-472e42ff}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.core/orleans.configuration.clustermembershipoptions/properties/numprobedsilos-472e42ff/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Core/Configuration/Options/ClusterMembershipOptions.cs)

```csharp
public int NumProbedSilos
```

Gets or sets the number of silos each silo probes for liveness.

### Value

Each silo will actively monitor up to 10 other silos by default.

## NumVotesForDeathDeclaration {#numvotesfordeathdeclaration-caa3cf4b}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.core/orleans.configuration.clustermembershipoptions/properties/numvotesfordeathdeclaration-caa3cf4b/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Core/Configuration/Options/ClusterMembershipOptions.cs)

```csharp
public int NumVotesForDeathDeclaration
```

Gets or sets the number of non-expired votes that are needed to declare some silo as down (should be at most [ClusterMembershipOptions](/orleans/docs/api/csharp/microsoft.orleans.core/orleans.configuration.clustermembershipoptions/)).

### Value

Two votes are sufficient for a silo to be declared as down, by default.

## ProbeTimeout {#probetimeout-467af396}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.core/orleans.configuration.clustermembershipoptions/properties/probetimeout-467af396/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Core/Configuration/Options/ClusterMembershipOptions.cs)

```csharp
public TimeSpan ProbeTimeout
```

Gets or sets both the period between sending a liveness probe to any given host as well as the timeout for each probe.

### Value

Probes time out and a new probe is sent every 5 seconds by default.

## TableRefreshTimeout {#tablerefreshtimeout-bdb98cc3}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.core/orleans.configuration.clustermembershipoptions/properties/tablerefreshtimeout-bdb98cc3/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Core/Configuration/Options/ClusterMembershipOptions.cs)

```csharp
public TimeSpan TableRefreshTimeout
```

Gets or sets the period between fetching updates from the membership table.

### Value

The membership table is refreshed every 60 seconds by default.

## UseLivenessGossip {#uselivenessgossip-889793cd}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.core/orleans.configuration.clustermembershipoptions/properties/uselivenessgossip-889793cd/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Core/Configuration/Options/ClusterMembershipOptions.cs)

```csharp
public bool UseLivenessGossip
```

Gets or sets a value indicating whether membership updates are disseminated between hosts using gossip.

### Value

Membership updates are disseminated using gossip by default.
