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
Ability to run analyzers in parallel #405
Conversation
analyzer/consensus/consensus.go
Outdated
// Main is the main Analyzer for the consensus layer. | ||
type Main struct { | ||
// ConsensusAnalyzer is the main Analyzer for the consensus layer. | ||
type ConsensusAnalyzer struct { |
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.
Is there any reason for this struct to be exported?
I think it makes more sense for NewConsensusAnalyzer
to return value of type analyzer.Analyzer
and then this struct can be made unexported.
I guess this will be updated in #389 anyway.
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.
Urgh that's something that's been inconsistent across analyzers for a while, and I never cared enough to unify it. Fixed now; all analyzers now return the type-erased analyzer.Analyzer
.
A reason (beyond not caring enough) I didn't want to touch this bit of code is that the naming was split between two conventions: Calling every analyzer Main
, or calling every analyzer in module mymodule
MyModuleAnalyzer
. I went with the latter now; I expect opinions/preferences will differ. I don't care which one we use (beyond thinking that Main
should be renamed to Analyzer
or MainAnalyzer
if we go there), but I don't really want to deal with bikeshedding and editing. If anybody wants to rename further, I welcome PRs (or commits to this PR).
8bd1aaa
to
4b75ba3
Compare
13a91f8
to
465ebf7
Compare
465ebf7
to
f70b48e
Compare
This was closed automatically when I accidentally deleted the remote (= github) branch. |
Resolves https://app.clickup.com/t/8669qdzbh
This PR
fast_sync
key to each block analyzer's config, wherein the block range and parallelism can be specifiedThis PR does NOT implement fast-sync behavior (= disabling dead reckoning) or parallelism tolerance inside the analyzers themselves; that happens in other PRs. So the only way to test this config in the very short term is to run "fast-sync" analyzers (that are no different from slow ones) with a parallelism level of 1.