solana/runtime/src
Brooks Prumo fe9ee9134a
Make background services aware of incremental snapshots (#19401)
AccountsBackgroundService now knows about incremental snapshots.  It is
now also in charge of deciding if an AccountsPackage is destined to be a
SnapshotPackage or not (or just used by AccountsHashVerifier).

!!! New behavior changes !!!

Taking snapshots (both bank and archive) **MUST** succeed.

This is required because of how the last full snapshot slot is
calculated, which is used by AccountsBackgroundService when calling
`clean_accounts()`.

File system calls are now unwrapped and will result in a crash. As Trent told me:

>Well I think if a snapshot fails due to some IO error, it's very likely that the operator is going to have to intervene before it works.  We should exit error in this case, otherwise the validator might happily spin for several more hours, never successfully writing a complete snapshot, before something else brings it down.  This would leave the validator's last local snapshot many more slots behind than it would be had we exited outright and potentially force the operator to abandon ledger continuity in favor of a quick catchup

Other errors will set the `exit` flag to `true`, and the node will gracefully shutdown.

Fixes #19167 
Fixes #19168
2021-08-31 18:33:27 -05:00
..
serde_snapshot Add solana-program-runtime crate (#19438) 2021-08-27 00:30:36 +00:00
accounts.rs Feature cleanup (#19528) 2021-08-31 14:51:26 -07:00
accounts_background_service.rs Make background services aware of incremental snapshots (#19401) 2021-08-31 18:33:27 -05:00
accounts_cache.rs calculate_capitalization uses hash calculation (#17443) 2021-06-14 08:53:07 -05:00
accounts_db.rs parallel shrink (#19507) 2021-08-31 11:57:34 -05:00
accounts_hash.rs CalculateHashIntermediate::new_without_slot -> new (#19274) 2021-08-18 09:07:34 -05:00
accounts_index.rs some basic accounts index refactoring (#19510) 2021-08-30 18:40:10 -05:00
ancestors.rs chore: cargo +nightly clippy --fix -Z unstable-options 2021-06-18 10:42:46 -07:00
append_vec.rs Eliminate doc warnings and fix some markdown (#18566) 2021-07-16 00:40:07 +00:00
bank.rs implements copy-on-write for vote-accounts (#19362) 2021-08-30 15:54:01 +00:00
bank_client.rs Store versioned transactions in the ledger, disabled by default (#19139) 2021-08-17 15:17:56 -07:00
bank_forks.rs for all tests, bank::new -> bank::new_for_tests (#19064) 2021-08-05 08:42:38 -05:00
bank_utils.rs Store versioned transactions in the ledger, disabled by default (#19139) 2021-08-17 15:17:56 -07:00
blockhash_queue.rs Deprecate FeeCalculator returning APIs (#19120) 2021-08-13 09:08:20 -07:00
bloom.rs Eliminate doc warnings and fix some markdown (#18566) 2021-07-16 00:40:07 +00:00
builtins.rs tx wide compute budget (#18631) 2021-07-16 00:31:22 -07:00
commitment.rs clippy 2021-04-18 20:55:02 -07:00
contains.rs
epoch_stakes.rs implements copy-on-write for vote-accounts (#19362) 2021-08-30 15:54:01 +00:00
genesis_utils.rs chore: cargo +nightly clippy --fix -Z unstable-options 2021-06-18 10:42:46 -07:00
hardened_unpack.rs change untar to use unpack instead of unpack_in (#19216) 2021-08-18 15:49:02 -05:00
hybrid_btree_map.rs accounts_index_bins to AccountsIndexConfig (#19257) 2021-08-17 14:50:01 -05:00
inline_spl_token_v2_0.rs token: Swap new token program id for consistency on all networks (#18823) 2021-07-22 10:31:55 +02:00
instruction_recorder.rs Store versioned transactions in the ledger, disabled by default (#19139) 2021-08-17 15:17:56 -07:00
lib.rs Revert "Add snapshot_runtime_info module (#18199)" 2021-08-31 17:50:18 -05:00
loader_utils.rs chore: cargo +nightly clippy --fix -Z unstable-options 2021-06-18 10:42:46 -07:00
log_collector.rs
message_processor.rs Feature cleanup (#19528) 2021-08-31 14:51:26 -07:00
neon_evm_program.rs fix test (#18609) 2021-07-12 11:45:25 -07:00
non_circulating_supply.rs for all tests, bank::new -> bank::new_for_tests (#19064) 2021-08-05 08:42:38 -05:00
pubkey_bins.rs move towards accounts index being dynamic (#19032) 2021-08-04 09:18:05 -05:00
read_only_accounts_cache.rs tests: lamports += to checked_add (#16842) 2021-04-27 10:23:07 -05:00
rent_collector.rs Fix rebase... 2021-07-09 09:08:38 -07:00
secondary_index.rs Write helper for multithread update (#18808) 2021-07-29 03:16:36 +02:00
serde_snapshot.rs Add solana-program-runtime crate (#19438) 2021-08-27 00:30:36 +00:00
shared_buffer_reader.rs lazy allocate buffers for bg reader in untar (#18640) 2021-07-16 13:17:03 -05:00
snapshot_archive_info.rs Move SnapshotArchiveInfo and friends into its own module (#19114) 2021-08-08 07:57:06 -05:00
snapshot_config.rs Name snapshots consistently (#19346) 2021-08-21 15:41:03 -05:00
snapshot_package.rs Make background services aware of incremental snapshots (#19401) 2021-08-31 18:33:27 -05:00
snapshot_utils.rs Make background services aware of incremental snapshots (#19401) 2021-08-31 18:33:27 -05:00
sorted_storages.rs calculate_capitalization uses hash calculation (#17443) 2021-06-14 08:53:07 -05:00
stake_weighted_timestamp.rs renames solana_runtime::vote_account::VoteAccount 2021-08-10 22:54:17 +00:00
stakes.rs implements copy-on-write for vote-accounts (#19362) 2021-08-30 15:54:01 +00:00
status_cache.rs chore: cargo +nightly clippy --fix -Z unstable-options 2021-06-18 10:42:46 -07:00
system_instruction_processor.rs Add base_slot to get_snapshot_storages() (#19348) 2021-08-20 16:23:43 -05:00
transaction_batch.rs Store versioned transactions in the ledger, disabled by default (#19139) 2021-08-17 15:17:56 -07:00
vote_account.rs implements copy-on-write for vote-accounts (#19362) 2021-08-30 15:54:01 +00:00
vote_sender_types.rs
waitable_condvar.rs runtime: ignore flakey `test_waitable_condvar` 2021-07-09 01:26:28 -06:00