Module solana_runtime::accounts_db[][src]

Expand description

Persistent accounts are stored in below path location: //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.

Structs

AccountInfo
AccountStorage
AccountStorageEntry

Persistent storage structure holding the accounts

AccountsDb
BankHashInfo
BankHashStats
ErrorCounters
FROZEN_ACCOUNT_PANIC
StoreAccountsTiming

Enums

AccountStorageStatus
BankHashVerificationError
LoadedAccount
LoadedAccountAccessor
ScanStorageResult

Constants

DEFAULT_FILE_SIZE
DEFAULT_NUM_DIRS
DEFAULT_NUM_THREADS
EXPIRATION_TTL_SECONDS
SHRINK_RATIO

Functions

get_temp_accounts_paths
make_min_priority_thread_pool

Type Definitions

AppendVecId

An offset into the AccountsDb::storage vector

SnapshotStorage
SnapshotStorages