-
Notifications
You must be signed in to change notification settings - Fork 246
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
Full domain chain snap sync. #3115
Closed
Closed
Changes from 28 commits
Commits
Show all changes
31 commits
Select commit
Hold shift + click to select a range
64e54ef
Add peer consensus for the last confirmed domain block receipt.
shamil-gadelshin 40758d0
Introduce snap sync orchestrator.
shamil-gadelshin b7801f6
Introduce consensus sync params struct.
shamil-gadelshin ce5f5f4
Add domain snap sync algorithm.
shamil-gadelshin b2b85f8
Update MMR-sync
shamil-gadelshin ea16060
Update consensus snap-sync
shamil-gadelshin b9832af
Modify domain networking stack.
shamil-gadelshin 3969d74
Update domain service (domain snap-sync integration)
shamil-gadelshin 4a1404c
Update domain operator (domain snap-sync integration)
shamil-gadelshin f9f87a6
Update relayer (domain snap-sync integration)
shamil-gadelshin 0568ab9
Update subspace-service (domain snap-sync integration)
shamil-gadelshin a274f32
Update subspace-node (domain snap-sync integration)
shamil-gadelshin bdb738a
Update test dependencies (domain snap-sync integration)
shamil-gadelshin 859c2cd
Update Cargo.lock
shamil-gadelshin bf89a41
Remove unnecessary dependencies.
shamil-gadelshin eb78e45
Refactor domain snap sync
shamil-gadelshin b8571cf
Move wait_for_block_import method.
shamil-gadelshin c5d4b0f
Remove unnecessary AuxStore field from ConsensusChainSyncParams
shamil-gadelshin 9956983
Change waiting for blocks to block notification acknowledgement
shamil-gadelshin 44499af
Modify SubspaceSyncOracle to add domain snap sync.
shamil-gadelshin 60d45e9
Refactor SnapSyncOrchestrator
shamil-gadelshin 8a035c0
Move domain block receipt protocol to domain network
shamil-gadelshin bf34b67
Update last confirmed domain block execution receipt protocol.
shamil-gadelshin ad6a1f1
Mark block import streams as Unpin
teor2345 6962b8f
Merge pull request #3179 from autonomys/full-domain-snap-sync-unpin
shamil-gadelshin 74c4f7f
Refactor domain snap sync.
shamil-gadelshin 1f78a74
Simplify error handling.
shamil-gadelshin 0bed801
Simplify async start_worker_task.
shamil-gadelshin 7179802
Refactor domain snap sync
shamil-gadelshin b6e9f84
Add log message on. failed domain snap sync.
shamil-gadelshin 2267205
Refactor error messages.
shamil-gadelshin File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains 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
This file contains 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
This file contains 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
This file contains 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
Oops, something went wrong.
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.
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.
Nit: this is an unusually strong ordering, which might have a performance impact. Usually it is enough to use
Acquire
for loads andRelease
for stores.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.
I'll set it to the proposed values. However, I don't think performance suffers here because of the access pattern (write once in total, query once per second). Please, correct me if I'm wrong.
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.
Besides the domain worker,
SubspaceSyncOracle
is also used in other places of the consensus chain like the archiver, PoT worker and RPC, etc, and if the domain sync is not finished it will change the return value ofis_major_syncing
and some behaviors of these workers, better to have more eyes on this to see if it is okay.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.
The
SeqCst
ordering has an impact on read and write performance, because it imposes a total order across all threads:https://doc.rust-lang.org/std/sync/atomic/enum.Ordering.html#variant.SeqCst