Skip to content

GrainStateWithMetaData<TView>

class

Namespace: Orleans.EventSourcing.StateStorage

A class that extends grain state with versioning metadata, so that a log-consistent grain can use a standard storage provider.
[Orleans.GenerateSerializer]
public sealed class GrainStateWithMetaData<TView>
where TView : class, new()

Constructors

Properties

  • GlobalVersion The length of the log
  • State The stored view of the log
  • WriteVector Metadata that is used to avoid duplicate appends. Logically, this is a (string->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.StateStorage.GrainStateWithMetaData.GetBit and flipped by Orleans.EventSourcing.StateStorage.GrainStateWithMetaData.FlipBit. Bits are toggled when writing, so that the retry logic can avoid appending an entry twice when retrying a failed append.

Methods

  • FlipBit(string) toggle one of the bits in Orleans.EventSourcing.StateStorage.GrainStateWithMetaData.WriteVector and return the new value.
  • GetBit(string) Gets one of the bits in Orleans.EventSourcing.StateStorage.GrainStateWithMetaData.WriteVector