Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add TPU forwarding of unprocessed but received packets, and restore 8 ticks per slot #2758

Merged
merged 6 commits into from
Feb 14, 2019

Conversation

mvines
Copy link
Member

@mvines mvines commented Feb 14, 2019

With a quick slot leader rotation (~8 ticks per slot), clients that talk directly to a leader node are likely to experience a high rate to dropped transactions during the time that PoH max height is reached and the TPU switches into forwarding mode. This is even worse for testnets with leader rotation disabled, where every ~800ms the leader accepts transactions but immediately drops them as it's going through its rotation gymnastics. This wreaks havoc on integration tests and the SDK development environment.

Instead we can easily collect all transaction packets received by the fetch stage that have yet to make it into the bank, and forward them to the next leader (which may in fact be the same node).

TODO:

  • Integration tests and ci/localnet-sanity.sh seem to be happy with this PR, but there are a bunch of upset unit tests (banking_stage.rs in particular)
  • Add unit tests specifically for this new forwarding facility
  • Address TODO in banking_stage.rs

Fixes #2675

@mvines mvines added work in progress This isn't quite right yet noCI Suppress CI on this Pull Request and removed noCI Suppress CI on this Pull Request labels Feb 14, 2019
@mvines mvines force-pushed the ocho branch 4 times, most recently from 4a6ffa2 to 47af707 Compare February 14, 2019 19:23
@codecov
Copy link

codecov bot commented Feb 14, 2019

Codecov Report

Merging #2758 into master will increase coverage by <.1%.
The diff coverage is 85.4%.

@@           Coverage Diff            @@
##           master   #2758     +/-   ##
========================================
+ Coverage    78.8%   78.8%   +<.1%     
========================================
  Files         115     115             
  Lines       19372   19407     +35     
========================================
+ Hits        15268   15299     +31     
- Misses       4104    4108      +4

@mvines mvines force-pushed the ocho branch 2 times, most recently from d992ce2 to 7553bda Compare February 14, 2019 20:50
@mvines mvines removed the work in progress This isn't quite right yet label Feb 14, 2019
@mvines mvines merged commit cceeb8e into solana-labs:master Feb 14, 2019
@mvines mvines deleted the ocho branch February 14, 2019 22:49
@mvines mvines requested a review from sagar-solana February 14, 2019 22:50
joncinque pushed a commit to joncinque/solana that referenced this pull request Aug 28, 2024
…abs#2758)

* Return error if epoch_boundary_block is not actually the epoch boundary block

* Update rpc-client-api/src/custom_error.rs

Co-authored-by: Trent Nelson <[email protected]>

---------

Co-authored-by: Trent Nelson <[email protected]>
willhickey pushed a commit that referenced this pull request Aug 31, 2024
…ackport of #2758) (#2781)

* RPC: rewards, return error if epoch_boundary_block is a lie (#2758)

* Return error if epoch_boundary_block is not actually the epoch boundary block

* Update rpc-client-api/src/custom_error.rs

Co-authored-by: Trent Nelson <[email protected]>

---------

Co-authored-by: Trent Nelson <[email protected]>
(cherry picked from commit 9a4b094)

# Conflicts:
#	rpc-client-api/src/custom_error.rs
#	rpc/src/rpc.rs

* Fix conflicts

---------

Co-authored-by: Tyera <[email protected]>
yihau pushed a commit to yihau/solana that referenced this pull request Sep 28, 2024
…ckport of solana-labs#2758) (solana-labs#2767)

RPC: rewards, return error if epoch_boundary_block is a lie (solana-labs#2758)

* Return error if epoch_boundary_block is not actually the epoch boundary block

* Update rpc-client-api/src/custom_error.rs

Co-authored-by: Trent Nelson <[email protected]>

---------

Co-authored-by: Trent Nelson <[email protected]>
(cherry picked from commit 9a4b094)

Co-authored-by: Tyera <[email protected]>
behzadnouri pushed a commit to behzadnouri/solana that referenced this pull request Oct 10, 2024
…ackport of solana-labs#2758) (solana-labs#2781)

* RPC: rewards, return error if epoch_boundary_block is a lie (solana-labs#2758)

* Return error if epoch_boundary_block is not actually the epoch boundary block

* Update rpc-client-api/src/custom_error.rs

Co-authored-by: Trent Nelson <[email protected]>

---------

Co-authored-by: Trent Nelson <[email protected]>
(cherry picked from commit 9a4b094)

# Conflicts:
#	rpc-client-api/src/custom_error.rs
#	rpc/src/rpc.rs

* Fix conflicts

---------

Co-authored-by: Tyera <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants