lighthouse/beacon_node
Michael Sproul 5cde3fc4da Reduce lock contention in backfill sync (#2716)
## Proposed Changes

Clone the proposer pubkeys during backfill signature verification to reduce the time that the pubkey cache lock is held for. Cloning such a small number of pubkeys has negligible impact on the total running time, but greatly reduces lock contention.

On a Ryzen 5950X, the setup step seems to take around 180us regardless of whether the key is cloned or not, while the verification takes 7ms. When Lighthouse is limited to 10% of one core using `sudo cpulimit --pid <pid> --limit 10` the total time jumps up to 800ms, but the setup step remains only 250us. This means that under heavy load this PR could cut the time the lock is held for from 800ms to 250us, which is a huge saving of 99.97%!
2021-10-15 03:28:03 +00:00
..
beacon_chain Reduce lock contention in backfill sync (#2716) 2021-10-15 03:28:03 +00:00
client Fix cargo audit warns for nix, psutil, time (#2699) 2021-10-11 00:10:35 +00:00
eth1 Remove unused deps (#2592) 2021-09-30 04:31:42 +00:00
eth2_libp2p Change "too many resources" to "insufficient resources" in eth2_libp2p (#2713) 2021-10-15 00:07:12 +00:00
genesis Remove unused deps (#2592) 2021-09-30 04:31:42 +00:00
http_api Add BeaconChainHarness::builder (#2707) 2021-10-14 02:58:10 +00:00
http_metrics Add TLS capability to the beacon node HTTP API (#2668) 2021-10-12 03:35:49 +00:00
network Add BeaconChainHarness::builder (#2707) 2021-10-14 02:58:10 +00:00
operation_pool Add BeaconChainHarness::builder (#2707) 2021-10-14 02:58:10 +00:00
src Add TLS capability to the beacon node HTTP API (#2668) 2021-10-12 03:35:49 +00:00
store Add BeaconChainHarness::builder (#2707) 2021-10-14 02:58:10 +00:00
tests Altair consensus changes and refactors (#2279) 2021-07-09 06:15:32 +00:00
timer Remove unused deps (#2592) 2021-09-30 04:31:42 +00:00
websocket_server Server sent events (#1920) 2020-12-04 00:18:58 +00:00
Cargo.toml Add TLS capability to the beacon node HTTP API (#2668) 2021-10-12 03:35:49 +00:00