solana/core/src
behzad nouri 3b87aa9227
reverts wide fanout in broadcast when the root node is down (#26359)
A change included in
https://github.com/solana-labs/solana/pull/20480
was that when the root node in turbine broadcast tree is down, the
leader will broadcast the shred to all nodes in the first layer.
The intention was to mitigate the impact of dead nodes on shreds
propagation, because if the root node is down, then the entire cluster
will miss out the shred.
On the other hand, if x% of stake is down, this will cause 200*x% + 1
packets/shreds ratio at the broadcast stage which might contribute to
line-rate saturation and packet drop.
To avoid this bandwidth saturation issue, this commit reverts that logic
and always broadcasts shreds from the leader only to the root node.
As before we rely on erasure codes to recover shreds lost due to staked
nodes being offline.
2022-08-16 19:40:06 +00:00
..
broadcast_stage reverts wide fanout in broadcast when the root node is down (#26359) 2022-08-16 19:40:06 +00:00
accounts_hash_verifier.rs add full_snapshot to hash config (#26811) 2022-07-28 09:46:34 -05:00
ancestor_hashes_service.rs ancestor hashes socket ping/pong support (#26866) 2022-08-09 21:39:55 -07:00
banking_stage.rs Separate file for ImmutableDeserializedPacket type (#26951) 2022-08-09 22:39:01 -07:00
broadcast_stage.rs reverts wide fanout in broadcast when the root node is down (#26359) 2022-08-16 19:40:06 +00:00
cache_block_meta_service.rs
cluster_info_vote_listener.rs Bugfix: VoteProcessingTiming reset both counters (#26843) 2022-07-29 12:56:04 -05:00
cluster_nodes.rs reverts wide fanout in broadcast when the root node is down (#26359) 2022-08-16 19:40:06 +00:00
cluster_slot_state_verifier.rs
cluster_slots.rs
cluster_slots_service.rs
commitment_service.rs Move vote program state and instructions to solana-program 2022-08-09 20:52:47 -07:00
completed_data_sets_service.rs
consensus.rs Move vote program state and instructions to solana-program 2022-08-09 20:52:47 -07:00
cost_update_service.rs
drop_bank_service.rs
duplicate_repair_status.rs
fetch_stage.rs replaces Mutex<PohRecorder> with RwLock<PohRecorder> (#26370) 2022-07-05 14:29:44 +00:00
find_packet_sender_stake_stage.rs Use client certs in QUIC to get peer's stake (#26477) 2022-07-11 18:06:40 +00:00
fork_choice.rs
forward_packet_batches_by_accounts.rs Separate file for ImmutableDeserializedPacket type (#26951) 2022-08-09 22:39:01 -07:00
gen_keys.rs
heaviest_subtree_fork_choice.rs
immutable_deserialized_packet.rs Separate file for ImmutableDeserializedPacket type (#26951) 2022-08-09 22:39:01 -07:00
latest_validator_votes_for_frozen_banks.rs
leader_slot_banking_stage_metrics.rs forward packets by prioritization in desc order (#25406) 2022-07-05 23:24:58 -05:00
leader_slot_banking_stage_timing_metrics.rs forward packets by prioritization in desc order (#25406) 2022-07-05 23:24:58 -05:00
ledger_cleanup_service.rs Delete files older than the lowest_cleanup_slot in LedgerCleanupService::cleanup_ledger (#26651) 2022-08-09 00:48:06 +08:00
ledger_metric_report_service.rs
lib.rs Separate file for ImmutableDeserializedPacket type (#26951) 2022-08-09 22:39:01 -07:00
optimistic_confirmation_verifier.rs removes erroneous uses of std::mem::swap (#26536) 2022-07-11 11:33:15 +00:00
outstanding_requests.rs
packet_hasher.rs skips shreds deserialization before retransmit (#26230) 2022-06-30 12:13:00 +00:00
packet_threshold.rs
poh_timing_report_service.rs
poh_timing_reporter.rs
progress_map.rs Concurrent slot replay (#26465) 2022-07-28 11:33:19 -07:00
qos_service.rs
repair_generic_traversal.rs
repair_response.rs verifies shred slot and parent in fetch stage (#26225) 2022-06-28 12:45:50 +00:00
repair_service.rs sign repair requests (#26833) 2022-07-31 15:48:51 -07:00
repair_weight.rs removes erroneous uses of std::mem::swap (#26536) 2022-07-11 11:33:15 +00:00
repair_weighted_traversal.rs
replay_stage.rs Handle JsonRpcService startup failure (#27075) 2022-08-11 23:25:20 -07:00
request_response.rs
result.rs
retransmit_stage.rs bypasses window-service stage before retransmitting shreds (#26291) 2022-07-06 11:49:58 +00:00
rewards_recorder_service.rs
sample_performance_service.rs
serve_repair.rs ancestor hashes socket ping/pong support (#26866) 2022-08-09 21:39:55 -07:00
serve_repair_service.rs removes redundant Option<&Arc<...>> wrapper for Blockstore in serve-repair 2022-08-02 15:30:53 +00:00
shred_fetch_stage.rs removes buffering when generating coding shreds in broadcast (#25807) 2022-08-11 12:44:27 +00:00
sigverify.rs removes erroneous uses of std::mem::swap (#26536) 2022-07-11 11:33:15 +00:00
sigverify_shreds.rs decouples shreds sig-verify from tpu vote and transaction packets (#26300) 2022-07-07 11:13:13 +00:00
sigverify_stage.rs
snapshot_packager_service.rs clean up and optimize account hash verify (#26560) 2022-07-12 19:27:28 +00:00
staked_nodes_updater_service.rs allow staked nodes weight override (#26870) 2022-08-11 14:34:04 -07:00
stats_reporter_service.rs
system_monitor_service.rs Io stats v2 (#26898) 2022-08-05 10:38:49 -07:00
tower1_7_14.rs Move vote program state and instructions to solana-program 2022-08-09 20:52:47 -07:00
tower_storage.rs
tpu.rs allow staked nodes weight override (#26870) 2022-08-11 14:34:04 -07:00
tracer_packet_stats.rs tracer-packet-stats reporting should not reset id (#27012) 2022-08-09 06:38:08 -07:00
transaction_priority_details.rs clean feature: `request_units_deprecated` (#27102) 2022-08-13 13:12:35 +01:00
tree_diff.rs
tvu.rs Handle JsonRpcService startup failure (#27075) 2022-08-11 23:25:20 -07:00
unfrozen_gossip_verified_vote_hashes.rs removes erroneous allow(dead_code) annotations from core (#26660) 2022-07-18 17:15:47 +00:00
unprocessed_packet_batches.rs Separate file for ImmutableDeserializedPacket type (#26951) 2022-08-09 22:39:01 -07:00
validator.rs Handle JsonRpcService startup failure (#27075) 2022-08-11 23:25:20 -07:00
verified_vote_packets.rs Only take the latest vote for each validator in gossip (#25934) 2022-07-26 16:38:30 -06:00
vote_simulator.rs
vote_stake_tracker.rs
voting_service.rs replaces Mutex<PohRecorder> with RwLock<PohRecorder> (#26370) 2022-07-05 14:29:44 +00:00
warm_quic_cache_service.rs replaces Mutex<PohRecorder> with RwLock<PohRecorder> (#26370) 2022-07-05 14:29:44 +00:00
window_service.rs bypasses window-service stage before retransmitting shreds (#26291) 2022-07-06 11:49:58 +00:00