A node version history datastructure
Type parameters
- InDep
-
the type of incoming dependency nodes
- OutDep
-
the type of outgoing dependency nodes
- T
-
the type of transactions
- V
-
the type of stored values
Value parameters
- init
-
the initial creating transaction
- valuePersistency
-
the value persistency descriptor
Attributes
- Companion
- object
- Graph
-
- Supertypes
Members list
Type members
Classlikes
Value parameters
- next
-
the successor version; the chain of next links forms the ground truth for which versions are contained in which order in the node's history.
- previousWriteIfStable
-
if set, this version is guaranteed to be stable. if null, stable must be verified by comparing firstFrame and possibly traversing the history.
- txn
-
the transaction to which this version belongs
- value
-
current state of this version
Attributes
- Supertypes
-
class LinkWithCounters[QueuedVersion]class AtomicReference[QueuedVersion]trait Serializableclass Objecttrait Matchableclass AnyShow all
Value members
Concrete methods
entry point for discover(this, add). May suspend.
entry point for discover(this, add). May suspend.
Value parameters
- add
-
the new edge's sink node
- txn
-
the executing reevaluation's transaction
Attributes
- Returns
-
the appropriate
Version.value
.
entry point for drop(this, ticket.issuer); may suspend temporarily.
entry point for drop(this, ticket.issuer); may suspend temporarily.
Value parameters
- remove
-
the removed edge's sink node
- txn
-
the executing reevaluation's transaction
Attributes
entry point for after(this); may suspend.
entry point for after(this); may suspend.
Value parameters
- txn
-
the executing transaction
Attributes
- Returns
-
the corresponding value from after this transaction, i.e., awaiting and returning the transaction's own write if one has occurred or will occur.
entry point for before(this); may suspend.
entry point for before(this); may suspend.
Value parameters
- txn
-
the executing transaction
Attributes
- Returns
-
the corresponding value from before this transaction, i.e., ignoring the transaction's own writes.
entry point for regular framing
entry point for regular framing
Value parameters
- txn
-
the transaction visiting the node for framing
Attributes
entry point for superseding framing
entry point for superseding framing
Value parameters
- supersede
-
the transaction whose frame was superseded by the visiting transaction at the previous node
- txn
-
the transaction visiting the node for framing
Attributes
entry point for change/nochange notification reception
entry point for change/nochange notification reception
Value parameters
- changed
-
whether or not the dependency changed
- txn
-
the transaction sending the notification
Attributes
entry point for change/nochange notification reception with follow-up framing
entry point for change/nochange notification reception with follow-up framing
Value parameters
- changed
-
whether or not the dependency changed
- followFrame
-
a transaction for which to create a subsequent frame, furthering its partial framing.
- txn
-
the transaction sending the notification
Attributes
progress firstFrame
forward until a Version.isFrame
is encountered, and return the resulting notification out (with reframing if subsequent write is found).
progress firstFrame
forward until a Version.isFrame
is encountered, and return the resulting notification out (with reframing if subsequent write is found).
Attributes
performs the reframings on the sink of a discover(n, this) with arity +1, or drop(n, this) with arity -1
performs the reframings on the sink of a discover(n, this) with arity +1, or drop(n, this) with arity -1
Value parameters
- arity
-
+1 for discover adding frames, -1 for drop removing frames.
- maybeSuccessorFrame
-
maybe a reframing to perform for the first successor frame
- successorWrittenVersions
-
the reframings to perform for successor written versions
Attributes
Concrete fields
pointer that reflects, which firstFrame is currently communicated to all successor nodes. writes are sequentialized and synchronized with outgoings changes through the object monitor (this.synchronized)
pointer that reflects, which firstFrame is currently communicated to all successor nodes. writes are sequentialized and synchronized with outgoings changes through the object monitor (this.synchronized)
Attributes
a pointer to some random version at or behind latestStable, used for periodic O(1) gc support accesses are executed only inside reevOut, and are therefore sequential by nature.
a pointer to some random version at or behind latestStable, used for periodic O(1) gc support accesses are executed only inside reevOut, and are therefore sequential by nature.
Attributes
successor nodes that are currently sbuscribed for cange notifications. accesses are sequentialized and synchronized with firstFrame changes through the object monitor (this.synchronized)
successor nodes that are currently sbuscribed for cange notifications. accesses are sequentialized and synchronized with firstFrame changes through the object monitor (this.synchronized)
Attributes
Inherited fields
Attributes
- Inherited from:
- FullMVState