-
Notifications
You must be signed in to change notification settings - Fork 334
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
shares shreds' payload between window-service and retransmit-stage #4803
base: master
Are you sure you want to change the base?
shares shreds' payload between window-service and retransmit-stage #4803
Conversation
c8f42a9
to
a91c1d3
Compare
@vadorovsky has been looking into a possible change to back |
I would not like to tie this with that other work (which I am not even confident is the right thing to do).
|
The recyclers operate on
As an FYI, I think we're leaning pretty heavily towards ripping the GPU code out: #3817
Got it, we can discuss over there
Fair enough. We can optimize things as they are and if |
Still does not sound like to me it will work with the recycler.
That is terrible. Sigverify is more of a major bottleneck than whatever #3817 is going to solve.
Not using |
let mut addrs: Vec<_> = self.addrs.iter().collect(); | ||
let reverse_count = |(_addr, count): &_| Reverse(*count); | ||
if addrs.len() > MAX_NUM_ADDRS { | ||
addrs.select_nth_unstable_by_key(MAX_NUM_ADDRS, reverse_count); | ||
addrs.truncate(MAX_NUM_ADDRS); | ||
} | ||
addrs.sort_unstable_by_key(reverse_count); | ||
info!( | ||
"num addresses: {}, top packets by source: {:?}", | ||
self.addrs.len(), | ||
addrs | ||
); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Removing this info!
log (and associated addrs
bookkeeping) here because it is pretty inefficient to collect emit these logs here.
I will look into putting something similar elsewhere in the pipeline (maybe shred-fetch-stage or sigverify).
a91c1d3
to
3653ce0
Compare
Shreds received from turbine are concurrently sent to window-service to be deserialized and inserted into blockstore, while their payload is sent to retransmit-stage. Using a shared payload between the two concurrent paths will reduce allocations and memcopies.
3653ce0
to
631996b
Compare
Problem
Shreds received from turbine are concurrently sent to window-service to be deserialized and inserted into blockstore, while their payload is sent to retransmit-stage. Using a shared payload between the two concurrent paths will reduce allocations and memcopies.
Summary of Changes
The commit shares shreds' payload between window-service and retransmit-stage.