solana icon indicating copy to clipboard operation
solana copied to clipboard

Improve AccoutsFile::appends_account() return value format

Open yhchiang-sol opened this issue 1 year ago • 0 comments

Problem

AccoutsFile::append_accounts() currently returns Vec<StoredAccountInfo>. This requires all the AccountsFile implementations to report the storage size of each account. This information will be later used for tracking the alive-bytes and shrinking process. However, not all the AccountsFile implementations know the "exact" storage size of each account as the file could have shared meta- data and other storage usage as mentioned in https://github.com/solana-labs/solana/pull/34929#discussion_r1467977234.

Proposed Solution

Instead, at the time of writing accounts, accounts-db only needs to know the total size. And it is not until the later stage we need an estimation of how much storage each account occupies. As a result, it is better to have append_accounts() return the total file size, and have a separate API to provide an estimation about how much storage size each account occupies.

yhchiang-sol avatar Feb 01 '24 21:02 yhchiang-sol