This repository was archived by the owner on Nov 15, 2023. It is now read-only.
pow: add Version for quick-check of metadata state and refactor lock handling#9698
Merged
6 commits merged intomasterfrom Oct 12, 2021
Merged
pow: add Version for quick-check of metadata state and refactor lock handling#96986 commits merged intomasterfrom
6 commits merged intomasterfrom
Conversation
Contributor
|
@sorpaas anyway to get this merged quickly, It works and I kinda need it urgently |
This was referenced Oct 7, 2021
andresilva
approved these changes
Oct 8, 2021
Contributor
andresilva
left a comment
There was a problem hiding this comment.
Didn't understand where the version will be used though.
bkchr
approved these changes
Oct 11, 2021
Contributor
Author
I added an example here kulupu/kulupu#168. Properly using it can avoid unnecessary data fetch in the mining lifecycle (checking if metadata is updated, computing the pre-mining information, etc) because we know for sure nothing has changed. |
Contributor
Author
|
bot merge |
|
Trying merge. |
This pull request was closed.
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
This PR adds a
Versionfield into the mining worker, an atomic value that is incremented every time the metadata is changed. It acts as a quick check for mining threads to determine if they need to fetch the metadata again.The code is also refactored that now it handles all locking internally -- the
MiningHandleinterface is mostly same as the previousMiningWorker, but it handles locks itself instead of exposing anMutex.We keep using an
Mutexforbuild(instead of aRwLock). While this is a one writer, multiple reader case, write priority is much more important than read, because we have to immediately notify miners of a metadata change, otherwise any work done is invalid anyway.