Expand description
Persistent accounts are stored at this path location:
<path>/<pid>/data/
The persistent store would allow for this mode of operation:
- Concurrent single thread append with many concurrent readers.
The underlying memory is memory mapped to a file. The accounts would be stored across multiple files and the mappings of file and offset of a particular account would be stored in a shared index. This will allow for concurrent commits without blocking reads, which will sequentially write to memory, ssd or disk, and should be as fast as the hardware allow for. The only required in memory data structure with a write lock is the index, which should be fast to update.
[AppendVec
]’s only store accounts for single slots. To bootstrap the
index from a persistent store of [AppendVec
]’s, the entries include
a “write_version”. A single global atomic AccountsDb::write_version
tracks the number of commits to the entire data store. So the latest
commit for each slot entry would be indexed.
Modules§
Structs§
- reference an account found during scanning a storage. This is a byval struct to replace
StoredAccountMeta
- Persistent storage structure holding the accounts
- The lt hash of old/duplicate accounts
- Configuration Parameters for running accounts hash and total lamports verification
Enums§
- Specify the source of the accounts data when calculating the accounts hash
- Which accounts hash calculation is being performed?
Constants§
- Default value for the number of ancient storages the ancient slot combining should converge to.
Functions§
- Returns the default number of threads to use for background accounts hashing
Type Aliases§
- An offset into the AccountsDb::storage vector