Module solana_core::crds [−][src]
This module implements Cluster Replicated Data Store for asynchronous updates in a distributed network.
Data is stored in the CrdsValue type, each type has a specific CrdsValueLabel. Labels are semantically grouped into a single record that is identified by a Pubkey.
- 1 Pubkey maps many CrdsValueLabels
- 1 CrdsValueLabel maps to 1 CrdsValue The Label, the record Pubkey, and all the record labels can be derived from a single CrdsValue.
The actual data is stored in a single map of
CrdsValueLabel(Pubkey) -> CrdsValue
This allows for partial record
updates to be propagated through the network.
This means that full Record
updates are not atomic.
Additional labels can be added by appending them to the CrdsValueLabel, CrdsValue enums.
Merge strategy is implemented in: impl PartialOrd for VersionedCrdsValue
A value is updated to a new version if the labels match, and the value wallclock is later, or the value hash is greater.
Structs
Crds | |
VersionedCrdsValue | This structure stores some local metadata associated with the CrdsValue The implementation of PartialOrd ensures that the “highest” version is always picked to be stored in the Crds |
Enums
CrdsError |