# LogStateWithMetaData&lt;TEntry&gt; Properties

[Type overview](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleans.eventsourcing.logstorage.logstatewithmetadata-1/)

## GlobalVersion {#globalversion-43685180}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleans.eventsourcing.logstorage.logstatewithmetadata-1/properties/globalversion-43685180/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.EventSourcing/LogStorage/LogStateWithMetaData.cs#L68)

```csharp
public int GlobalVersion
```

The length of the log

## Log {#log-8341a4d6}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleans.eventsourcing.logstorage.logstatewithmetadata-1/properties/log-8341a4d6/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.EventSourcing/LogStorage/LogStateWithMetaData.cs)

```csharp
[Orleans.Id(0)]
public List<TEntry> Log
```

The stored view of the log

## WriteVector {#writevector-80d7be79}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.eventsourcing/orleans.eventsourcing.logstorage.logstatewithmetadata-1/properties/writevector-80d7be79/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.EventSourcing/LogStorage/LogStateWithMetaData.cs)

```csharp
[Orleans.Id(1)]
public string WriteVector
```

Metadata that is used to avoid duplicate appends. Logically, this is a (string-&gt;bit) map, the keys being replica ids But this map is represented compactly as a simple string to reduce serialization/deserialization overhead Bits are read by `Orleans.EventSourcing.LogStorage.LogStateWithMetaData-1.GetBit(System.String)` and flipped by `Orleans.EventSourcing.LogStorage.LogStateWithMetaData-1.FlipBit(System.String)`. Bits are toggled when writing, so that the retry logic can avoid appending an entry twice when retrying a failed append.
