lighthouse/beacon_node/beacon_chain/src
Michael Sproul efebf712dd Avoid cloning snapshots during sync (#3271)
## Issue Addressed

Closes https://github.com/sigp/lighthouse/issues/2944

## Proposed Changes

Remove snapshots from the cache during sync rather than cloning them. This reduces unnecessary cloning and memory fragmentation during sync.

## Additional Info

This PR relies on the fact that the `block_delay` cache is not populated for blocks from sync. Relying on block delay may have the side effect that a change in `block_delay` calculation could lead to: a) more clones, if block delays are added for syncing blocks or b) less clones, if blocks near the head are erroneously provided without a `block_delay`. Case (a) would be a regression to the current status quo, and (b) is low-risk given we know that the snapshot cache is current susceptible to misses (hence `tree-states`).
2022-06-20 23:20:29 +00:00
..
attestation_verification Batch BLS verification for attestations (#2399) 2021-09-22 08:49:41 +00:00
schema_change Separate execution payloads in the DB (#3157) 2022-05-12 00:42:17 +00:00
attestation_verification.rs Ignore attestations to finalized blocks (don't reject) (#3052) 2022-03-04 00:41:22 +00:00
attester_cache.rs Add early attester cache (#2872) 2022-01-11 01:35:55 +00:00
beacon_chain.rs Avoid parallel fork choice runs during sync (#3217) 2022-05-25 03:27:30 +00:00
beacon_fork_choice_store.rs Separate execution payloads in the DB (#3157) 2022-05-12 00:42:17 +00:00
beacon_proposer_cache.rs Prepare proposer (#3043) 2022-03-09 00:42:05 +00:00
beacon_snapshot.rs Separate execution payloads in the DB (#3157) 2022-05-12 00:42:17 +00:00
block_reward.rs Separate execution payloads in the DB (#3157) 2022-05-12 00:42:17 +00:00
block_times_cache.rs Add BlockTimesCache to allow additional block delay metrics (#2546) 2021-09-30 04:31:41 +00:00
block_verification.rs Fix Rust 1.61 clippy lints (#3192) 2022-05-20 05:02:13 +00:00
builder.rs Run fork choice before block proposal (#3168) 2022-05-20 05:02:11 +00:00
chain_config.rs Run fork choice before block proposal (#3168) 2022-05-20 05:02:11 +00:00
early_attester_cache.rs Prevent attestation to future blocks from early attester cache (#3183) 2022-05-17 01:51:25 +00:00
errors.rs Run fork choice before block proposal (#3168) 2022-05-20 05:02:11 +00:00
eth1_chain.rs Removed PowBlock struct that never got used (#2813) 2021-12-02 14:29:20 +11:00
events.rs Implement API for block rewards (#2628) 2022-01-27 01:06:02 +00:00
execution_payload.rs Separate execution payloads in the DB (#3157) 2022-05-12 00:42:17 +00:00
fork_choice_signal.rs Run fork choice before block proposal (#3168) 2022-05-20 05:02:11 +00:00
fork_revert.rs Separate execution payloads in the DB (#3157) 2022-05-12 00:42:17 +00:00
head_tracker.rs Altair consensus changes and refactors (#2279) 2021-07-09 06:15:32 +00:00
historical_blocks.rs Separate execution payloads in the DB (#3157) 2022-05-12 00:42:17 +00:00
lib.rs Run fork choice before block proposal (#3168) 2022-05-20 05:02:11 +00:00
metrics.rs Run fork choice before block proposal (#3168) 2022-05-20 05:02:11 +00:00
migrate.rs Avoid parallel fork choice runs during sync (#3217) 2022-05-25 03:27:30 +00:00
naive_aggregation_pool.rs Update to Rust 1.59 and 2021 edition (#3038) 2022-02-25 00:10:17 +00:00
observed_aggregates.rs v2.2.0 (#3139) 2022-04-05 02:53:09 +00:00
observed_attesters.rs Ensure doppelganger detects attestations in blocks (#2495) 2021-08-09 02:43:03 +00:00
observed_block_producers.rs Doppelganger detection (#2230) 2021-07-31 03:50:52 +00:00
observed_operations.rs Clippy 1.49.0 updates and dht persistence test fix (#2156) 2021-01-19 00:34:28 +00:00
persisted_beacon_chain.rs Fix head tracker concurrency bugs (#1771) 2020-10-19 05:58:39 +00:00
persisted_fork_choice.rs Optimise balances cache in case of skipped slots (#2849) 2021-12-13 23:35:57 +00:00
pre_finalization_cache.rs Separate execution payloads in the DB (#3157) 2022-05-12 00:42:17 +00:00
proposer_prep_service.rs Don't log crits for missing EE before Bellatrix (#3150) 2022-04-11 23:14:47 +00:00
schema_change.rs Remove DB migrations for legacy database schemas (#3181) 2022-05-17 04:54:39 +00:00
shuffling_cache.rs Advance state to next slot after importing block (#2174) 2021-02-15 07:17:52 +00:00
snapshot_cache.rs Avoid cloning snapshots during sync (#3271) 2022-06-20 23:20:29 +00:00
state_advance_timer.rs Avoid parallel fork choice runs during sync (#3217) 2022-05-25 03:27:30 +00:00
sync_committee_verification.rs Update to Rust 1.59 and 2021 edition (#3038) 2022-02-25 00:10:17 +00:00
test_utils.rs Run fork choice before block proposal (#3168) 2022-05-20 05:02:11 +00:00
timeout_rw_lock.rs Add flag to disable lock timeouts (#2714) 2021-10-19 00:30:40 +00:00
validator_monitor.rs Fix validator_monitor_prev_epoch_ metrics (#2911) 2022-06-20 04:06:30 +00:00
validator_pubkey_cache.rs Remove DB migrations for legacy database schemas (#3181) 2022-05-17 04:54:39 +00:00