# AzureTableJournalStorageOptions Properties

[Type overview](/orleans/docs/api/csharp/microsoft.orleans.journaling.azurestorage/orleans.journaling.azuretablejournalstorageoptions/)

## ClientOptions {#clientoptions-036b6e94}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.journaling.azurestorage/orleans.journaling.azuretablejournalstorageoptions/properties/clientoptions-036b6e94/)

[Source](https://github.com/dotnet/orleans/blob/b7a9e3e1c9c54b3cec3a467c5734bf7744541bcf/src/Azure/Orleans.Journaling.AzureStorage/AzureTableJournalStorageOptions.cs)

```csharp
public TableClientOptions? ClientOptions
```

Options to be used when configuring the table storage client, or `null` to use the default options.

## CompactionRowCountThreshold {#compactionrowcountthreshold-5f7e2838}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.journaling.azurestorage/orleans.journaling.azuretablejournalstorageoptions/properties/compactionrowcountthreshold-5f7e2838/)

[Source](https://github.com/dotnet/orleans/blob/b7a9e3e1c9c54b3cec3a467c5734bf7744541bcf/src/Azure/Orleans.Journaling.AzureStorage/AzureTableJournalStorageOptions.cs)

```csharp
public long CompactionRowCountThreshold
```

Gets or sets the number of data rows written since the last replace operation at which [IJournalStorage](/orleans/docs/api/csharp/microsoft.orleans.journaling/orleans.journaling.ijournalstorage/) becomes true. Defaults to 10,000.

## CompactionSizeThreshold {#compactionsizethreshold-a92e139e}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.journaling.azurestorage/orleans.journaling.azuretablejournalstorageoptions/properties/compactionsizethreshold-a92e139e/)

[Source](https://github.com/dotnet/orleans/blob/b7a9e3e1c9c54b3cec3a467c5734bf7744541bcf/src/Azure/Orleans.Journaling.AzureStorage/AzureTableJournalStorageOptions.cs)

```csharp
public long CompactionSizeThreshold
```

Gets or sets the number of journal bytes written since the last replace operation at which [IJournalStorage](/orleans/docs/api/csharp/microsoft.orleans.journaling/orleans.journaling.ijournalstorage/) becomes true. Defaults to 32 MiB.

## DeleteOldGenerations {#deleteoldgenerations-00b9eebe}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.journaling.azurestorage/orleans.journaling.azuretablejournalstorageoptions/properties/deleteoldgenerations-00b9eebe/)

[Source](https://github.com/dotnet/orleans/blob/b7a9e3e1c9c54b3cec3a467c5734bf7744541bcf/src/Azure/Orleans.Journaling.AzureStorage/AzureTableJournalStorageOptions.cs)

```csharp
public bool DeleteOldGenerations
```

Gets or sets a value indicating whether rows belonging to the previous journal generation are deleted after a replace operation publishes a new generation. Defaults to true.

## GetPartitionKey {#getpartitionkey-3db4134b}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.journaling.azurestorage/orleans.journaling.azuretablejournalstorageoptions/properties/getpartitionkey-3db4134b/)

[Source](https://github.com/dotnet/orleans/blob/b7a9e3e1c9c54b3cec3a467c5734bf7744541bcf/src/Azure/Orleans.Journaling.AzureStorage/AzureTableJournalStorageOptions.cs)

```csharp
public Func<JournalId, string> GetPartitionKey
```

Gets or sets the delegate used to generate the table partition key for a journal.

## MaxMetadataOnlyConflictRetries {#maxmetadataonlyconflictretries-5a55ba45}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.journaling.azurestorage/orleans.journaling.azuretablejournalstorageoptions/properties/maxmetadataonlyconflictretries-5a55ba45/)

[Source](https://github.com/dotnet/orleans/blob/b7a9e3e1c9c54b3cec3a467c5734bf7744541bcf/src/Azure/Orleans.Journaling.AzureStorage/AzureTableJournalStorageOptions.cs)

```csharp
public int MaxMetadataOnlyConflictRetries
```

Gets or sets the maximum number of times a journaling Append, Replace, or Delete operation will refresh its cached header ETag and retry in place after observing a metadata-only ETag conflict (for example, a concurrent caller-owned metadata update). When the cap is exceeded the storage layer falls back to throwing [InconsistentStateException](/orleans/docs/api/csharp/microsoft.orleans.core/orleans.storage.inconsistentstateexception/) and the journaling layer recovers before retrying. Defaults to 5.

## MetadataOnlyConflictInitialBackoff {#metadataonlyconflictinitialbackoff-efc6bcf3}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.journaling.azurestorage/orleans.journaling.azuretablejournalstorageoptions/properties/metadataonlyconflictinitialbackoff-efc6bcf3/)

[Source](https://github.com/dotnet/orleans/blob/b7a9e3e1c9c54b3cec3a467c5734bf7744541bcf/src/Azure/Orleans.Journaling.AzureStorage/AzureTableJournalStorageOptions.cs)

```csharp
public TimeSpan MetadataOnlyConflictInitialBackoff
```

Gets or sets the initial delay applied before re-trying after a metadata-only ETag conflict. Subsequent attempts double the delay (capped at [AzureTableJournalStorageOptions](/orleans/docs/api/csharp/microsoft.orleans.journaling.azurestorage/orleans.journaling.azuretablejournalstorageoptions/)). Set to `System.TimeSpan.Zero` to retry immediately without backoff. Defaults to 10 ms.

## MetadataOnlyConflictMaxBackoff {#metadataonlyconflictmaxbackoff-60aabb71}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.journaling.azurestorage/orleans.journaling.azuretablejournalstorageoptions/properties/metadataonlyconflictmaxbackoff-60aabb71/)

[Source](https://github.com/dotnet/orleans/blob/b7a9e3e1c9c54b3cec3a467c5734bf7744541bcf/src/Azure/Orleans.Journaling.AzureStorage/AzureTableJournalStorageOptions.cs)

```csharp
public TimeSpan MetadataOnlyConflictMaxBackoff
```

Gets or sets the upper bound on the per-attempt backoff used by metadata-only conflict retries. The exponential schedule starts at [AzureTableJournalStorageOptions](/orleans/docs/api/csharp/microsoft.orleans.journaling.azurestorage/orleans.journaling.azuretablejournalstorageoptions/) and never exceeds this value. Defaults to 200 ms.

## TableName {#tablename-1826c381}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.journaling.azurestorage/orleans.journaling.azuretablejournalstorageoptions/properties/tablename-1826c381/)

[Source](https://github.com/dotnet/orleans/blob/b7a9e3e1c9c54b3cec3a467c5734bf7744541bcf/src/Azure/Orleans.Journaling.AzureStorage/AzureTableJournalStorageOptions.cs)

```csharp
public string TableName
```

Table name where journal data is stored.

## TableServiceClient {#tableserviceclient-ff8c232e}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.journaling.azurestorage/orleans.journaling.azuretablejournalstorageoptions/properties/tableserviceclient-ff8c232e/)

[Source](https://github.com/dotnet/orleans/blob/b7a9e3e1c9c54b3cec3a467c5734bf7744541bcf/src/Azure/Orleans.Journaling.AzureStorage/AzureTableJournalStorageOptions.cs)

```csharp
public TableServiceClient? TableServiceClient
```

Gets or sets the client used to access the Azure Table Service.
