solana/core/src
Christian Kamm 97f2eb8e65 Banking stage: Deserialize packets only once
Benchmarks show roughly a 6% improvement. The impact could be more
significant when transactions need to be retried a lot.

after patch:
{'name': 'banking_bench_total', 'median': '72767.43'}
{'name': 'banking_bench_tx_total', 'median': '80240.38'}
{'name': 'banking_bench_success_tx_total', 'median': '72767.43'}
test bench_banking_stage_multi_accounts
... bench:   6,137,264 ns/iter (+/- 1,364,111)
test bench_banking_stage_multi_programs
... bench:  10,086,435 ns/iter (+/- 2,921,440)

before patch:
{'name': 'banking_bench_total', 'median': '68572.26'}
{'name': 'banking_bench_tx_total', 'median': '75704.75'}
{'name': 'banking_bench_success_tx_total', 'median': '68572.26'}
test bench_banking_stage_multi_accounts
... bench:   6,521,007 ns/iter (+/- 1,926,741)
test bench_banking_stage_multi_programs
... bench:  10,526,433 ns/iter (+/- 2,736,530)
2022-04-15 00:57:11 -06:00
..
broadcast_stage fix typo in broadcast_duplicates_run.rs (#22888) 2022-02-02 12:29:14 -07:00
accounts_hash_verifier.rs move hash calculation out of acct bg svc (#23689) 2022-04-08 10:42:03 -05:00
ancestor_hashes_service.rs Refactor packet_threshold adjustment code into its own struct (#23216) 2022-03-02 09:09:06 -06:00
banking_stage.rs Banking stage: Deserialize packets only once 2022-04-15 00:57:11 -06:00
broadcast_stage.rs convert std::sync::mpsc to crossbeam_channel (#22264) 2022-01-11 02:44:46 -08:00
cache_block_meta_service.rs
cluster_info_vote_listener.rs removes VoteTracker::new in favor of VoteTracker::default (#22941) 2022-02-04 19:01:59 +00:00
cluster_nodes.rs removes legacy compatibility turbine peers shuffle code 2022-04-05 12:04:12 +00:00
cluster_slot_state_verifier.rs Reformat imports to a consistent style for imports 2021-12-03 09:19:13 -08:00
cluster_slots.rs Reformat imports to a consistent style for imports 2021-12-03 09:19:13 -08:00
cluster_slots_service.rs Reformat imports to a consistent style for imports 2021-12-03 09:19:13 -08:00
commitment_service.rs convert std::sync::mpsc to crossbeam_channel (#22264) 2022-01-11 02:44:46 -08:00
completed_data_sets_service.rs Reformat imports to a consistent style for imports 2021-12-03 09:19:13 -08:00
consensus.rs Use VoteAccountsHashMap type alias in all applicable spots (#23904) 2022-03-24 12:09:48 -05:00
cost_update_service.rs Not exposing inner cost_table to encapsulating implementation details, 2022-03-18 12:58:43 -05:00
drop_bank_service.rs convert std::sync::mpsc to crossbeam_channel (#22264) 2022-01-11 02:44:46 -08:00
duplicate_repair_status.rs Reformat imports to a consistent style for imports 2021-12-03 09:19:13 -08:00
fetch_stage.rs convert std::sync::mpsc to crossbeam_channel (#22264) 2022-01-11 02:44:46 -08:00
find_packet_sender_stake_stage.rs add timing metrics, some renaming 2022-03-17 19:31:28 -05:00
fork_choice.rs Reformat imports to a consistent style for imports 2021-12-03 09:19:13 -08:00
gen_keys.rs Reformat imports to a consistent style for imports 2021-12-03 09:19:13 -08:00
heaviest_subtree_fork_choice.rs checks 2022-02-25 08:05:28 +00:00
latest_validator_votes_for_frozen_banks.rs Reformat imports to a consistent style for imports 2021-12-03 09:19:13 -08:00
leader_slot_banking_stage_metrics.rs Add execute timings (#23097) 2022-02-17 01:14:32 -05:00
leader_slot_banking_stage_timing_metrics.rs Remove duplicate increment (#24219) 2022-04-09 15:21:39 -05:00
ledger_cleanup_service.rs Add high level overview comments on ledger_cleanup_service (#24184) 2022-04-08 00:49:21 -05:00
ledger_metric_report_service.rs (LedgerStore) Enable performance sampling in column family get() (#23834) 2022-04-01 13:13:32 -07:00
lib.rs Poh timing service (#23736) 2022-03-30 09:04:49 -05:00
optimistic_confirmation_verifier.rs Reformat imports to a consistent style for imports 2021-12-03 09:19:13 -08:00
outstanding_requests.rs Reformat imports to a consistent style for imports 2021-12-03 09:19:13 -08:00
packet_hasher.rs
packet_threshold.rs fmt (#23448) 2022-03-02 11:54:58 -06:00
poh_timing_report_service.rs Poh timing service (#23736) 2022-03-30 09:04:49 -05:00
poh_timing_reporter.rs Poh timing service (#23736) 2022-03-30 09:04:49 -05:00
progress_map.rs Use VoteAccountsHashMap type alias in all applicable spots (#23904) 2022-03-24 12:09:48 -05:00
qos_service.rs Address review comments 2022-04-08 14:37:55 -05:00
repair_generic_traversal.rs Avoid cloning Vec<Entry> when calling entries_to_test_shreds() (#22093) 2021-12-24 12:32:43 -08:00
repair_response.rs adds bitflags to Packet.Meta 2022-01-04 13:53:40 +00:00
repair_service.rs Ensure AncestorHashesSerice selects an open port (#21919) 2021-12-18 00:44:01 -05:00
repair_weight.rs checks 2022-02-25 08:05:28 +00:00
repair_weighted_traversal.rs Reformat imports to a consistent style for imports 2021-12-03 09:19:13 -08:00
replay_stage.rs track fec set turbine stats (#23989) 2022-04-04 14:44:21 -07:00
request_response.rs
result.rs convert std::sync::mpsc to crossbeam_channel (#22264) 2022-01-11 02:44:46 -08:00
retransmit_stage.rs removes outdated and flaky test_skip_repair from retransmit-stage (#24121) 2022-04-05 16:02:53 +00:00
rewards_recorder_service.rs Reformat imports to a consistent style for imports 2021-12-03 09:19:13 -08:00
sample_performance_service.rs Reformat imports to a consistent style for imports 2021-12-03 09:19:13 -08:00
serve_repair.rs removes legacy weighted_shuffle and weighted_best methods (#24125) 2022-04-05 19:19:22 +00:00
serve_repair_service.rs convert std::sync::mpsc to crossbeam_channel (#22264) 2022-01-11 02:44:46 -08:00
shred_fetch_stage.rs Add tx weighting stage 2022-03-17 19:31:28 -05:00
sigverify.rs Handle already discarded packets in gpu sigverify path (#22680) 2022-01-24 14:35:47 +01:00
sigverify_shreds.rs Handle already discarded packets in gpu sigverify path (#22680) 2022-01-24 14:35:47 +01:00
sigverify_stage.rs add timing metrics, some renaming 2022-03-17 19:31:28 -05:00
snapshot_packager_service.rs compare contents of serialized banks instead of exact file format (#24141) 2022-04-06 21:55:44 -05:00
stats_reporter_service.rs convert std::sync::mpsc to crossbeam_channel (#22264) 2022-01-11 02:44:46 -08:00
system_monitor_service.rs Add --no-os-memory-stats-reporting 2022-03-15 17:07:40 -07:00
tower1_7_14.rs Add rustfmt.toml and `cargo fmt` (#23238) 2022-02-19 13:32:29 +08:00
tower_storage.rs Switch to await-aware tokio::sync::Mutex 2022-04-11 18:15:03 -04:00
tpu.rs tvu and tpu timeout on joining its microservices (#24111) 2022-04-07 20:20:13 -05:00
tree_diff.rs
tvu.rs tvu and tpu timeout on joining its microservices (#24111) 2022-04-07 20:20:13 -05:00
unfrozen_gossip_verified_vote_hashes.rs Reformat imports to a consistent style for imports 2021-12-03 09:19:13 -08:00
unprocessed_packet_batches.rs Banking stage: Deserialize packets only once 2022-04-15 00:57:11 -06:00
validator.rs Don't enforce ulimit for validator test config (#24272) 2022-04-12 22:06:37 +02:00
verified_vote_packets.rs Refactor: move simple vote parsing to runtime (#22537) 2022-01-20 10:39:21 +08:00
vote_simulator.rs convert std::sync::mpsc to crossbeam_channel (#22264) 2022-01-11 02:44:46 -08:00
vote_stake_tracker.rs Reformat imports to a consistent style for imports 2021-12-03 09:19:13 -08:00
voting_service.rs Revert voting service to use UDP instead of QUIC (#24032) 2022-04-01 09:34:18 -07:00
window_service.rs seperate blockstore metrics from window service metrics (#23871) 2022-03-23 13:38:17 -05:00