public readonly record struct RealmVersionWhat a shard was built from: an assembly version and a content hash.
Remarks
ADR-022. Both halves, and both of them filter placement rather than only rejecting a handshake. Doc 16's session already refuses a peer whose content hash differs; making the same number a placement term is the whole of the incremental-upgrade story, because a client that has not fetched the catalog update yet is then routed to a shard that still matches instead of being told no.
⚠ Content is the catalog's BuildHash, not a second number. One value, three uses: the handshake compares it, placement filters on it, and vixen content build produces it. A registry mapping "content version" to "catalog hash" would be a fourth place for them to disagree.
Fields and properties (4)
public ulong ContentThe catalog's BuildHash.
public static RealmVersion NoneNothing in particular — what a spec that named no version decodes to.
public string BuildThe assembly version. Null only on default; see RealmInstanceId.
public bool IsValidWhether this names a version at all.
Methods (6)
public RealmVersion(string Build, ulong Content)What a shard was built from: an assembly version and a content hash.
public bool Admits(RealmVersion other)Whether a client carrying may be placed on this shard.
public static bool TryParse(string? text, out RealmVersion version)Reads one back.
public bool Equals(RealmVersion other)Whether two versions are the same version.
public override int GetHashCode()Returns the hash code for this instance.
public override string ToString()Returns the fully qualified type name of this instance.
Used by (29)
- CatalogResponseVixen.Live.Abstractions
- ClientTransferVixen.Live.Transfer
- ClientTransferTestsVixen.Live.Transfer.Tests
- FleetGrainVixen.Live.Orchestrator
- GateClientTestsVixen.Live.Client.Tests
- GateJsonVixen.Live.Abstractions
- GateOptionsVixen.Live.Gate
- GateProtocolTestsVixen.Live.Abstractions.Tests
- GateServiceVixen.Live.Gate
- GateServiceTestsVixen.Live.Gate.Tests
- IFleetGrainVixen.Live.Cluster
- LiveVocabularyTestsVixen.Live.Abstractions.Tests
- MapGrainVixen.Live.Orchestrator
- PlacementDirectorVixen.Live.Orchestrator
- PlacementDirectorTestsVixen.Live.Orchestrator.Tests
- PlayRequestVixen.Live.Abstractions
- RealmVixen.Live.Realm
- RealmVixen.Live.Realm.Tests
- RealmClusterTestsVixen.Live.Realm.Cluster.Tests
- RealmFixtureVixen.Live.Realm.Tests
- RealmHostVixen.Live.Realm
- RealmSpecVixen.Live.Abstractions
- RealmVersionConverterVixen.Live.Cluster
- RealmVersionJsonConverterVixen.Live.Abstractions
- RolloutVixen.Live.Orchestrator
- RolloutTestsVixen.Live.Orchestrator.Tests
- ShardKeyVixen.Live.Abstractions
- ShardKeySurrogateVixen.Live.Cluster
- TransferPrepareVixen.Live.Transfer