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

additional costs in block capacity calc #25059

Conversation

jdavis103
Copy link
Contributor

Problem

A leader could put more transactions into a block than can be completed during the slot. Could put validators behind on future blocks, an even bigger issue if that validator will soon be a leader.

Summary of Changes

If, during replay, we've already taken more time (in compute-unit terms) than fits in a slot, existing code stops work on this block and moves on (if this feature is turned on). This PR expands the capacity-gating of blocks during replay to not only include execution time used, but also three static values -- signature, write-lock, and data bytes costs. This will give a more accurate (and earlier) stopping point if needed.

There is also a change to pass around a single CostModel structure throughout this file, as that is a comparatively expensive structure to initialize, and we need it in the new cost-estimating function.

This PR is a re-issue of the code from #24664, which is now streamlined due to some other cleanups around it.

Fixes #

jdavis103 added 2 commits May 6, 2022 16:14
…c of CostModel all the way to the top of the call chain, instead of reallocing
ledger/src/blockstore_processor.rs Outdated Show resolved Hide resolved
ledger/src/blockstore_processor.rs Outdated Show resolved Hide resolved
ledger/src/blockstore_processor.rs Outdated Show resolved Hide resolved
ledger/src/blockstore_processor.rs Show resolved Hide resolved
@codecov
Copy link

codecov bot commented May 7, 2022

Codecov Report

Merging #25059 (e5a1ba0) into master (69a0ff9) will increase coverage by 0.0%.
The diff coverage is 76.8%.

@@            Coverage Diff            @@
##           master   #25059     +/-   ##
=========================================
  Coverage    82.0%    82.0%             
=========================================
  Files         598      610     +12     
  Lines      165882   167963   +2081     
=========================================
+ Hits       136125   137893   +1768     
- Misses      29757    30070    +313     

@tao-stones tao-stones changed the title Jason additional costs in block capacity calc additional costs in block capacity calc May 11, 2022
Copy link
Contributor

@tao-stones tao-stones left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm, probably should complete issue #25166 before enabling featureset

@jdavis103 jdavis103 merged commit 08da486 into solana-labs:master May 12, 2022
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.

2 participants