-
Notifications
You must be signed in to change notification settings - Fork 746
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
Reconstruct data columns without blocking processing and import #5990
Reconstruct data columns without blocking processing and import #5990
Conversation
|
beacon_node/beacon_chain/src/data_availability_checker/overflow_lru_cache.rs
Show resolved
Hide resolved
beacon_node/beacon_chain/src/data_availability_checker/overflow_lru_cache.rs
Outdated
Show resolved
Hide resolved
beacon_node/beacon_chain/src/data_availability_checker/overflow_lru_cache.rs
Outdated
Show resolved
Hide resolved
…ng one at a time. Address other review comments.
Thanks for the review! I've addressed the comments and will start local testing. |
beacon_node/network/src/network_beacon_processor/sync_methods.rs
Outdated
Show resolved
Hide resolved
beacon_node/beacon_chain/src/data_availability_checker/overflow_lru_cache.rs
Show resolved
Hide resolved
Thanks for the review! Addressed your comments in 7d2d826. |
Squashed commit of the following: commit 7d2d826 Author: Jimmy Chen <[email protected]> Date: Mon Jul 1 13:44:45 2024 +1000 Send import results to sync after reconstruction. Add more logging and metrics. commit 4b30ebe Merge: f93e2b5 7206909 Author: Jimmy Chen <[email protected]> Date: Fri Jun 28 17:23:22 2024 +1000 Merge branch 'das' into fork/reconstruct-without-blocking-import commit f93e2b5 Author: Jimmy Chen <[email protected]> Date: Fri Jun 28 14:42:04 2024 +1000 Code cleanup: add type aliases and update comments. commit 6ac055d Author: Jimmy Chen <[email protected]> Date: Fri Jun 28 14:26:40 2024 +1000 Revert reconstruction behaviour to always go ahead rather than allowing one at a time. Address other review comments. commit 1e3964e Author: Jimmy Chen <[email protected]> Date: Tue Jun 25 00:02:19 2024 +1000 Reconstruct columns without blocking processing and import.
db43a2a
to
0f355a7
Compare
@@ -1044,7 +1017,7 @@ impl<T: BeaconChainTypes> NetworkBeaconProcessor<T> { | |||
"block_root" => %block_root, | |||
); | |||
|
|||
// Potentially trigger reconstruction | |||
self.attempt_data_column_reconstruction(block_root).await; |
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.
Looks like this doesn't work, issues:
- Still seeing reconstruction blocking gossip data column processing
- This change should be made to the cached block instead of the clone:
lighthouse/beacon_node/beacon_chain/src/data_availability_checker/overflow_lru_cache.rs
Line 885 in 7d2d826
pending_components.reconstruction_started(); - Because of 1., after the block is imported, I see a bunch of:
Jul 01 06:27:21.130 DEBG Attempted to publish duplicate message kind: data_column_sidecar_31, service: libp2p
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.
Fixed #2.
I can't seem to figure out why reconstruction is blocking the processing of other incoming data columns. I don't see any lock being held during reconstruction, perhaps it is just waiting for a beacon processor worker to become available.
We could send it to the back of the beacon processor queue, but I'll do some more testing to make sure this is the case.
808e84a
to
3badc3b
Compare
3badc3b
to
efabb98
Compare
Generally looks good to me! Lots of conflicts, tho Do you want to port this to unstable? |
Thanks, I've just tried to resolve conflicts, but unfortunately I see this is going to conflict a lot with #6268, and it might be easier to implement it once that one is merged, as it has quite a bit of common logic and changes. Since this one is very outdated, I think it make sense to just create a new PR, using the branch from #6268 as base branch. |
Leaving this PR open so we don't forget this. |
Please update to point at
|
Closing in favour of #6403 |
Issue Addressed
Part of #4983. This is a work in progress.
The current sequence of reconstruction:
Proposed Changes
RuntimeVariableList
conversion for data columnsAdditional Info
Below are logs from local testing, notice that the reconstruction blocks processing of incoming data columns (due to holding the availability cache write lock), and they gets ignored as duplicates: