- case class ActivenessCheck[Key](checkFresh: Set[Key], checkFree: Set[Key], checkActive: Set[Key], lock: Set[Key])(implicit prettyK: Pretty[Key]) extends PrettyPrinting with Product with Serializable
Defines the activeness checks and locking for one kind of states (contracts, keys, ...)
- case class ActivenessCheckResult[Key, Status <: PrettyPrinting](alreadyLocked: Set[Key], notFresh: Set[Key], unknown: Set[Key], notFree: Map[Key, Status], notActive: Map[Key, Status])(implicit prettyK: Pretty[Key]) extends PrettyPrinting with Product with Serializable
The result of the activeness check for an ActivenessCheck.
The items that have already been locked at the activeness check.
The items that are supposed to not exist, but do.
The items that shall be free, but are not.
The contracts that shall be active, but are not.
- case class ActivenessResult(contracts: ActivenessCheckResult[LfContractId, Status], inactiveTransfers: Set[TransferId], keys: ActivenessCheckResult[LfGlobalKey, Status]) extends PrettyPrinting with Product with Serializable
The result of the activeness check for an ActivenessSet.
The contracts whose activeness check has failed
The transfers that shall be completed, but that are not active.
- case class ActivenessSet(contracts: ActivenessCheck[LfContractId], transferIds: Set[TransferId], keys: ActivenessCheck[LfGlobalKey]) extends PrettyPrinting with Product with Serializable
Defines the contracts and transfers for conflict detection.
- case class CommitSet(archivals: Map[LfContractId, WithContractHash[Set[LfPartyId]]], creations: Map[LfContractId, WithContractHash[ContractMetadata]], transferOuts: Map[LfContractId, WithContractHash[(DomainId, Set[LfPartyId])]], transferIns: Map[LfContractId, WithContractHash[WithContractMetadata[TransferId]]], keyUpdates: Map[LfGlobalKey, Status]) extends PrettyPrinting with Product with Serializable
Describes the effect of a confirmation request on the active contracts, contract keys, and transfers.
The contracts to be archived, along with their stakeholders. Must not contain contracts in transferOuts.
The contracts to be created.
The contracts to be transferred out, along with their target domains and stakeholders. Must not contain contracts in archivals.
The contracts to be transferred in, along with their transfer IDs.
The contract keys with their new state.
- Exceptions thrown
- class ConflictDetector extends NamedLogging with FlagCloseable
The ConflictDetector stores the state of contracts activated or deactivated by in-flight requests in memory, and similarly for contract keys.
- case class IllegalConflictDetectionStateException(msg: String, cause: Throwable = null) extends RuntimeException with Product with Serializable
- case class ImmutableLockableState[Status <: PrettyPrinting](versionedState: Option[Option[StateChange[Status]]], pendingActivenessChecks: PendingActivenessCheckCounter, lock: LockCounter, pendingWrites: PendingWriteCounter) extends LockableState[Status] with Product with Serializable
- trait LockableState[Status <: PrettyPrinting] extends PrettyPrinting
- class LockableStates[Key, Status <: PrettyPrinting with HasPrunable, E] extends NamedLogging
Manages in-memory states of items (contracts, keys, ...) that are used or modified by in-flight requests.
Identifier for states
The status type for states.
- trait LockableStatus[-Status] extends AnyRef
Type class for operations on statuses that can be locked.
- class MutableLockableState[Status <: PrettyPrinting] extends LockableState[Status] with PrettyPrinting
A mutable lockable in-memory state with support for pre-fetching from a store
- class NaiveRequestTracker extends RequestTracker with NamedLogging with FlagCloseableAsync
The naive request tracker performs all its tasks (activeness check/timeout/finalization) sequentially.
- trait RequestTracker extends AutoCloseable with NamedLogging
The request tracker handles all the tasks around conflict detection that are difficult to parallelize.
- object ActivenessCheck extends Serializable
- object ActivenessCheckResult extends Serializable
- object ActivenessResult extends Serializable
- object ActivenessSet extends Serializable
- object CommitSet extends Serializable
- object ConflictDetector
- object LockableState
- object LockableStates
- object LockableStatus
- object NaiveRequestTracker
- object RequestTracker