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.