Expand description
Persistent accounts are stored in below path location:
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.
Structs§
- Account
Storage - Account
Storage Entry - Persistent storage structure holding the accounts
- Accounts
AddRoot Timing - Accounts
Db - Accounts
DbConfig - Accounts
Stats - Bank
Hash Info - Bank
Hash Stats - Filler
Accounts Config - Found
Stored Account - GetUnique
Accounts Result - Index
Generation Info - Store
Accounts Timing
Enums§
- Account
Shrink Threshold - Account
Storage Status - Bank
Hash Verification Error - Load
Hint - Load
Zero Lamports - specifies how to return zero lamport accounts This will only be useful until a feature activation occurs.
- Loaded
Account - Loaded
Account Accessor - Scan
Storage Result - Store
Reclaims
Constants§
- ACCOUNTS_
DB_ CONFIG_ FOR_ BENCHMARKS - ACCOUNTS_
DB_ CONFIG_ FOR_ TESTING - DEFAULT_
ACCOUNTS_ SHRINK_ OPTIMIZE_ TOTAL_ SPACE - DEFAULT_
ACCOUNTS_ SHRINK_ RATIO - DEFAULT_
FILE_ SIZE - DEFAULT_
NUM_ DIRS - DEFAULT_
NUM_ THREADS - EXPIRATION_
TTL_ SECONDS - NUM_
SCAN_ PASSES_ DEFAULT - PUBKEY_
BINS_ FOR_ CALCULATING_ HASHES
Functions§
Type Aliases§
- Append
VecId - Atomic
Append VecId - An offset into the AccountsDb::storage vector
- Binned
Hash Data - Snapshot
Storage - Snapshot
Storages