-
Notifications
You must be signed in to change notification settings - Fork 971
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
das: Parallelise DASer #988
das: Parallelise DASer #988
Conversation
8424ef6
to
d2af2e9
Compare
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.
just looking at docs and names for now
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.
Leaving an intermediate review for now --
I like the general direction. I think there are things that could be simplified (e.g. the backgroundStore). Also, can we rename discovery
of headers to something other than discovery? Just something that indicates it's recent/received through subscription rather than some active discovery process.
Another thing is the frequency/duplicity of storing the checkpoint to disk:
2022-08-18T10:34:56.270+0200 INFO das das/daser.go:200 discovered new header {"height": 181780}
2022-08-18T10:34:56.270+0200 INFO das das/state.go:63 added recent headers maxKnown DASer priority queue {"from_height": 181779, "to_height": 181780}
2022-08-18T10:35:15.924+0200 INFO das das/daser.go:151 stored checkpoint to disk {"checkpoint": {"min_sampled_height":173870,"max_known_height":181780,"skipped":{}}}
2022-08-18T10:36:15.920+0200 INFO das das/daser.go:151 stored checkpoint to disk {"checkpoint": {"min_sampled_height":173870,"max_known_height":181780,"skipped":{}}}
2022-08-18T10:37:15.918+0200 INFO das das/daser.go:151 stored checkpoint to disk {"checkpoint": {"min_sampled_height":173870,"max_known_height":181780,"skipped":{}}}
2022-08-18T10:38:15.921+0200 INFO das das/daser.go:151 stored checkpoint to disk {"checkpoint": {"min_sampled_height":173870,"max_known_height":181780,"skipped":{}}}
2022-08-18T10:39:15.916+0200 INFO das das/daser.go:151 stored checkpoint to disk {"checkpoint": {"min_sampled_height":173870,"max_known_height":181780,"skipped":{}}}
2022-08-18T10:40:15.915+0200 INFO das das/daser.go:151 stored checkpoint to disk {"checkpoint": {"min_sampled_height":173870,"max_known_height":181780,"skipped":{}}}
I am running your branch against mamaki and this is taken from my logs ^.
I think this PR would benefit from some further simplification as well as cleaning up of weird behaviours like the one I just mentioned. Also more documentation :) There is a doc.go
file and it would be nice if you could update it.
Also, when stopping the node (without force quitting), I get the following:
|
b9cefff
to
c2f8aaf
Compare
Oops, sorry for making each comment a separate review. I've started using different software for reviews and not yet got used to it |
As per the sync discussion, we decided to rework one by one header height handling in favor of height ranges |
a7dc00c
to
cb2e732
Compare
TODO list from sync call
|
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.
Awesome work! The logic is correct AFAICS, and I wasn't able to find any bugs. Left mostly stylistic nits/questions and thoughts on things. Looking forward to the above TODO's changes to land
92f0609
to
5f721ba
Compare
More changes from review comments will come in later commits |
c442f34
to
94e4526
Compare
I’ve squashed DAS’er commit history so it is easier to track new changes. All previous reviews comments were addressed before the squash. |
94e4526
to
afb2067
Compare
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.
Just comments and logs fixes. The logic is correct, so a solid approval.
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.
Reapproval
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.
Awesome progress on this PR, it looks great now and much easier to follow :) thanks a lot for being so thorough with this.
Nit that can be left for a subsequent PR:
we should godoc every exported function, struct etc. (e.g. WorkerStats
) even if it seems obvious as it's best practice
4bf660c
to
6046d72
Compare
- add pool of workers - resume DAS'er and workers upon restart from last checkpoint - save checkpoint periodically - prioritise headers of newly produced blocks over old ones
6046d72
to
658139d
Compare
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.
morge it
Let's also resolve all the comments to be nice and tidy |
Resolves
catchUp
method #483TestDASer_catchUp_oneHeader
#793Distribute data availability sampling across pool of workers.
New DASer implementation bring pool of workers. Core features:
TODO: