Source/Packages

Checkpoint.NativePeerPublication

packages/execution/persistence/src/Checkpoint/NativePeerPublication.alpha

478 lines34 declarations22.1 KiBSHA-256 2ce6ac127ae2

family · lines 40–59

NativePeerRegionPublication

Full file
A star capture and durable publication strategy over owners 0..peers. State meaning, local computation, source placement and numerical policy belong to the caller. Owner 0 publishes: it prepares its own shards from its local state, then receives each other owner's captured state in turn over that owner's edge, checks that the agreed leading bytes (at least the (version, cursor, epoch) prefix) are identical to its own, and prepares that owner's shards from it. Only after every shard and the manifest are durable does it release each owner with the committed version; every owner, publisher included, completes only then. A missing, late or differently advanced owner publishes nothing. Per-owner frames carry that owner's identity, so a capture received on the wrong edge fails its frame check. All capture frames share one storage region (and all committed frames another): they are used one owner at a time, so the publisher's frame storage does not grow with the owner count.
40family NativePeerRegionPublication : Type 0
41constructor NativePeerRegionPublicationOf
42field unrestricted peerPublicationCheckpoint : (family NativeRegionCheckpoint)
43-- owners other than the publisher
44field unrestricted peerPublicationPeers : Nat
45-- the frame carrying `owner`'s capture to the publisher, and the one releasing it
46field unrestricted peerPublicationCapture : (pi unrestricted owner : Nat . (family RegionFrameLayout))
47field unrestricted peerPublicationCommitted : (pi unrestricted owner : Nat . (family RegionFrameLayout))
48-- the connection slot to `peer` (Runtime.NativePeerEndpoint.nativePeerEdgeConnectionTo)
49field unrestricted peerPublicationConnection : (pi unrestricted peer : Nat . Nat)
50field unrestricted peerPublicationStateAt : Nat
51field unrestricted peerPublicationStateBytes : Nat
52-- the leading bytes of every owner's state that must equal the publisher's:
53-- at least the (version, cursor, epoch) capture prefix; a replicated learner
54-- names its whole replicated state, so diverged replicas publish nothing
55field unrestricted peerPublicationAgreedBytes : Nat
56-- which owner's state holds a shard, and the shard's byte offset in it
57field unrestricted peerPublicationOwner : (pi unrestricted shard : (family NativeRegionShard) . Nat)
58field unrestricted peerPublicationOffset : (pi unrestricted shard : (family NativeRegionShard) . Nat)
59field unrestricted peerPublicationPaths : (family NativeRegionPaths)

The compiler supplied declaration spans and resolved links from this source snapshot. This page does not assert that this file belongs to a checked closure.