lighthouse/beacon_node/store/src
Michael Sproul 507bb9dad4 Refined payload pruning (#3587)
## Proposed Changes

Improve the payload pruning feature in several ways:

- Payload pruning is now entirely optional. It is enabled by default but can be disabled with `--prune-payloads false`. The previous `--prune-payloads-on-startup` flag from #3565 is removed.
- Initial payload pruning on startup now runs in a background thread. This thread will always load the split state, which is a small fraction of its total work (up to ~300ms) and then backtrack from that state. This pruning process ran in 2m5s on one Prater node with good I/O and 16m on a node with slower I/O.
- To work with the optional payload pruning the database function `try_load_full_block` will now attempt to load execution payloads for finalized slots _if_ pruning is currently disabled. This gives users an opt-out for the extensive traffic between the CL and EL for reconstructing payloads.

## Additional Info

If the `prune-payloads` flag is toggled on and off then the on-startup check may not see any payloads to delete and fail to clean them up. In this case the `lighthouse db prune_payloads` command should be used to force a manual sweep of the database.
2022-09-19 07:58:49 +00:00
..
impls Separate execution payloads in the DB (#3157) 2022-05-12 00:42:17 +00:00
chunk_writer.rs Implement checkpoint sync (#2244) 2021-09-22 00:37:28 +00:00
chunked_iter.rs Add configurable block replayer (#2863) 2021-12-21 06:30:52 +00:00
chunked_vector.rs Resolve Rust 1.56 lints and warnings (#2728) 2021-10-19 00:30:42 +00:00
config.rs Refined payload pruning (#3587) 2022-09-19 07:58:49 +00:00
errors.rs Separate execution payloads in the DB (#3157) 2022-05-12 00:42:17 +00:00
forwards_iter.rs Add configurable block replayer (#2863) 2021-12-21 06:30:52 +00:00
garbage_collection.rs Compact database on finalization (#1871) 2020-11-09 07:02:21 +00:00
hot_cold_store.rs Refined payload pruning (#3587) 2022-09-19 07:58:49 +00:00
impls.rs Separate execution payloads in the DB (#3157) 2022-05-12 00:42:17 +00:00
iter.rs Fix lints for Rust 1.63 (#3459) 2022-08-12 00:56:39 +00:00
leveldb_store.rs Separate execution payloads in the DB (#3157) 2022-05-12 00:42:17 +00:00
lib.rs Initial Commit of Retrospective OTB Verification (#3372) 2022-07-30 00:22:38 +00:00
memory_store.rs Initial Commit of Retrospective OTB Verification (#3372) 2022-07-30 00:22:38 +00:00
metadata.rs Refactor op pool for speed and correctness (#3312) 2022-08-29 09:10:26 +00:00
metrics.rs Implement slasher (#1567) 2020-11-23 03:43:22 +00:00
partial_beacon_state.rs Initial merge changes 2021-12-02 14:26:50 +11:00
reconstruct.rs Separate execution payloads in the DB (#3157) 2022-05-12 00:42:17 +00:00