Save producerIndex load while polling a pooled chunk on mpmc xadd q#269
Merged
Conversation
Pull Request Test Coverage Report for Build 580
💛 - Coveralls |
|
This pull request introduces 1 alert when merging 687a3fb into 671c0a8 - view on LGTM.com new alerts:
|
687a3fb to
75793bb
Compare
|
This pull request introduces 1 alert when merging 75793bb into 671c0a8 - view on LGTM.com new alerts:
|
75793bb to
3322e9f
Compare
Collaborator
Author
|
@nitsanw this is ready to be reviewed/merged |
Collaborator
Author
Collaborator
Author
|
@nitsanw Wait a sec: I see this This hasn't happened before, but seems present from the beginning, I've alread sent #270 to fix it |
Collaborator
Author
|
@nitsanw Despite what CI says (see comment above), this is ready to be reviewed/merged |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The change on poll introduced by fc29784 has caused a performance regression due to an increased number of
producerIndexloads.This PR is using
consumerBuffer::indexto save someproducerIndexloads, while preserving correctness of fast fail (ie return null) during a rotation if there are no other elements but the first one in the next chunk.Some results by running
master:
this PR:
These results show that saving unecessary
producerIndexloads on rotation can make a lot of difference, hence #265 could be very beneficial to be implemented for a future release.