Skip to content
This repository has been archived by the owner on Jan 13, 2025. It is now read-only.

expands number of erasure coding shreds in the last batch in slots (backport #16484) #16707

Merged
merged 3 commits into from
Apr 21, 2021

Conversation

mergify[bot]
Copy link
Contributor

@mergify mergify bot commented Apr 21, 2021

This is an automatic backport of pull request #16484 done by Mergify.

Cherry-pick of 37b8587 has failed:

On branch mergify/bp/v1.6/pr-16484
Your branch is up to date with 'origin/v1.6'.

You are currently cherry-picking commit 37b8587d4.
  (fix conflicts and run "git cherry-pick --continue")
  (use "git cherry-pick --skip" to skip this patch)
  (use "git cherry-pick --abort" to cancel the cherry-pick operation)

Changes to be committed:
	modified:   core/benches/retransmit_stage.rs
	modified:   core/src/broadcast_stage.rs
	modified:   core/src/broadcast_stage/broadcast_fake_shreds_run.rs
	modified:   core/src/broadcast_stage/fail_entry_verification_broadcast_run.rs
	modified:   core/src/broadcast_stage/standard_broadcast_run.rs
	modified:   core/src/cluster_info.rs
	modified:   core/src/duplicate_shred.rs
	modified:   core/src/shred_fetch_stage.rs
	modified:   core/src/window_service.rs
	modified:   ledger/src/blockstore.rs
	modified:   ledger/src/erasure.rs
	modified:   ledger/tests/shred.rs

Unmerged paths:
  (use "git add <file>..." to mark resolution)
	both modified:   core/benches/shredder.rs
	both modified:   ledger/src/shred.rs

To fixup this pull request, you can check out it locally. See documentation: https://help.github.com/articles/checking-out-pull-requests-locally/


Mergify commands and options

More conditions and actions can be found in the documentation.

You can also trigger Mergify actions by commenting on this pull request:

  • @Mergifyio refresh will re-evaluate the rules
  • @Mergifyio rebase will rebase this PR on its base branch
  • @Mergifyio update will merge the base branch into this PR
  • @Mergifyio backport <destination> will backport this PR on <destination> branch

Additionally, on Mergify dashboard you can:

  • look at your merge queues
  • generate the Mergify configuration with the config editor.

Finally, you can contact us on https://mergify.io/

…16484)

Number of parity coding shreds is always less than the number of data
shreds in FEC blocks:
https://github.com/solana-labs/solana/blob/6907a2366/ledger/src/shred.rs#L719

Data shreds are batched in chunks of 32 shreds each:
https://github.com/solana-labs/solana/blob/6907a2366/ledger/src/shred.rs#L714

However the very last batch of data shreds in a slot can be small, in
which case the loss rate can be exacerbated.

This commit expands the number of coding shreds in the last FEC block in
slots to: 64 - number of data shreds; so that FEC blocks are always 64
data and parity coding shreds each.

As a consequence of this, the last FEC block has more parity coding
shreds than data shreds. So for some shred indices we will have a coding
shred but no data shreds. This should not cause any kind of overlapping
FEC blocks as in:
#10095
since this is done only for the very last batch in a slot, and the next
slot will reset the shred index.

(cherry picked from commit 37b8587)

# Conflicts:
#	core/benches/shredder.rs
#	ledger/src/shred.rs
@mergify mergify bot added conflicts automerge Merge this Pull Request automatically once CI passes labels Apr 21, 2021
@mergify
Copy link
Contributor Author

mergify bot commented Apr 21, 2021

automerge label removed due to a CI failure

@mergify mergify bot removed the automerge Merge this Pull Request automatically once CI passes label Apr 21, 2021
@mergify mergify bot added the automerge Merge this Pull Request automatically once CI passes label Apr 21, 2021
@mergify
Copy link
Contributor Author

mergify bot commented Apr 21, 2021

automerge label removed due to a CI failure

@mergify mergify bot added automerge Merge this Pull Request automatically once CI passes and removed automerge Merge this Pull Request automatically once CI passes labels Apr 21, 2021
@mergify
Copy link
Contributor Author

mergify bot commented Apr 21, 2021

automerge label removed due to a CI failure

@mergify mergify bot added automerge Merge this Pull Request automatically once CI passes and removed automerge Merge this Pull Request automatically once CI passes labels Apr 21, 2021
@mergify
Copy link
Contributor Author

mergify bot commented Apr 21, 2021

automerge label removed due to a CI failure

@behzadnouri behzadnouri force-pushed the mergify/bp/v1.6/pr-16484 branch from 550339a to a756684 Compare April 21, 2021 14:10
@mergify mergify bot added automerge Merge this Pull Request automatically once CI passes and removed automerge Merge this Pull Request automatically once CI passes labels Apr 21, 2021
@mergify
Copy link
Contributor Author

mergify bot commented Apr 21, 2021

automerge label removed due to a CI failure

@mergify mergify bot added the automerge Merge this Pull Request automatically once CI passes label Apr 21, 2021
@codecov
Copy link

codecov bot commented Apr 21, 2021

Codecov Report

Merging #16707 (a756684) into v1.6 (ea2cc90) will decrease coverage by 0.0%.
The diff coverage is 100.0%.

@@            Coverage Diff            @@
##             v1.6   #16707     +/-   ##
=========================================
- Coverage    82.9%    82.9%   -0.1%     
=========================================
  Files         414      414             
  Lines      113921   113956     +35     
=========================================
+ Hits        94482    94494     +12     
- Misses      19439    19462     +23     

@mergify mergify bot merged commit ae605f8 into v1.6 Apr 21, 2021
@mergify mergify bot deleted the mergify/bp/v1.6/pr-16484 branch April 21, 2021 15:25
@brooksprumo brooksprumo mentioned this pull request Aug 23, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
automerge Merge this Pull Request automatically once CI passes conflicts
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant