-
Notifications
You must be signed in to change notification settings - Fork 1.9k
perf(tree): worker pooling for account proofs #18901
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
Merged
Merged
Changes from 91 commits
Commits
Show all changes
112 commits
Select commit
Hold shift + click to select a range
436dbd7
feat(storage): introduce storage proof worker pool
yongkangc fbeec50
fmt, clippy
yongkangc ab82386
add fallback
yongkangc 13891ad
fix comments
yongkangc d4e0adb
refactor(metrics): remove unused storage proof metrics from ProofTask…
yongkangc 2957afa
refactor(proof_task): improve documentation and rename variables for …
yongkangc 800dcf6
refactor(proof_task): streamline documentation and clarify task manag…
yongkangc 29d48d4
refactor(config): remove storage proof worker configuration
yongkangc 3fb97c6
refactor(proof_task): enhance comments and adjust queue capacity logic
yongkangc 5779b86
disable max concurrency
yongkangc 0e33837
nits
yongkangc 3bcbc71
Update crates/trie/parallel/src/proof_task.rs
yongkangc 4a67076
Update crates/trie/parallel/src/proof_task.rs
yongkangc b2d5bcc
using unbounded queue
yongkangc 8f4e3a1
rm comment
yongkangc b4bf193
refactor(proof_task): optimize storage proof computation by reusing c…
yongkangc 6282d2e
propogate error up
yongkangc 838dc67
reduce scope of pr - exclude all accs
yongkangc 5897945
fmt, clippy
yongkangc 6b5de7c
fmt
yongkangc 05e0eb8
refactor(proof_task): consolidate blinded storage node with storage p…
yongkangc 4829de9
rm comment
yongkangc 6472cfe
simplify worker concurrency
yongkangc 61ecc9a
bump to error!
yongkangc 30f6fda
Update crates/engine/tree/src/tree/payload_processor/mod.rs
yongkangc 4680336
handle sending error back
yongkangc 58d6f8b
fmt
yongkangc 59b0353
fix fmt
yongkangc 93c67e8
Enhance TreeConfig with storage worker count configuration
yongkangc 1954502
update message
yongkangc 2429320
refactor(proof_task): use impl bound
yongkangc 1902b43
make spawning falliable
yongkangc 8fb0dd1
remove error log, as we propogate up
yongkangc e0010d7
Apply suggestion from @Copilot
yongkangc 53cd4ba
use expect instead of unwrap
yongkangc e854628
Update crates/trie/parallel/src/proof_task.rs
yongkangc 3b17cc7
Update crates/trie/parallel/src/proof_task.rs
yongkangc 6c89cf4
consolidate
yongkangc c5f6eb9
removed the unnecessary remaining_concurrency variable allocation
yongkangc af73c7a
clippy
yongkangc a8e52bc
Apply suggestion from @yongkangc
yongkangc c48b328
address brian's pr
yongkangc 3eff3e2
Merge branch 'main' into yk/worker_pool_storage_2
yongkangc 4934099
feat: added initial structs for acc proofs support for task manager
yongkangc d847799
feat: add account worker count to TreeConfig and update task manager
yongkangc 4c9c2ee
feat: implement account worker functionality in ProofTaskManager
yongkangc 2f10f99
refactor: enhance ProofTaskManager with account worker integration
yongkangc f5538b2
refactor: slight cleanup
yongkangc aeff6d2
refactor spawning workers into a generic function
yongkangc c4c2b4b
refactor: integrate account proof task handling in MultiproofManager
yongkangc 4e30bba
fmt
yongkangc 509898b
refactor: implement account worker loop
yongkangc 7892d54
pass in `missed_leaves_storage_roots`
yongkangc 26b8ca8
refactor: remove db
yongkangc c48085d
remove db
yongkangc 66bf694
refactor: streamline account multiproof generation
yongkangc ee16627
refactor: add mapping
yongkangc 7fbd172
refactor: enhance account worker loop and storage proof collection
yongkangc 0884e15
refactor: improve account multiproof processing and storage proof han…
yongkangc d76cc86
refactor: optimize account multiproof processing and error handling
yongkangc 8e45538
refactor: enhance account worker management and task routing
yongkangc 8be550a
refactor: improve task management in ProofTaskManager
yongkangc 087e875
refactor: remove unused blinded account node retrieval function
yongkangc 0646f14
fmt
yongkangc 886cb6f
changed to error
yongkangc e51707a
refactor: simplify error handling in proof task management
yongkangc 4941071
rm comment
yongkangc d6401ab
fix rebase conflict
yongkangc 9fa34b0
fmt
yongkangc d0e2ba1
removed generic based on brian's suggestion
yongkangc 7efff3d
Update crates/trie/parallel/src/proof_task.rs
yongkangc f7cd93f
Update crates/trie/parallel/src/proof_task.rs
yongkangc f823c6b
Refactor error handling in StorageWorkerJob to use a consistent error…
yongkangc 9c08aed
Refactor error handling in StorageWorkerJob to use structured error t…
yongkangc 7f9ec06
fmt, clipy
yongkangc 6d41352
fix
yongkangc dc5ba15
moved `build_account_multiproof_with_storage_roots` to prooftask.rs
yongkangc 14b6356
refactor: remove generic type parameter from `ProofTaskManagerHandle`
yongkangc 5e1ca83
fmt
yongkangc 3b815f6
refactor: rename storage proof task handle for clarity
yongkangc 7df3488
refactor: simplify `ProofTaskManager` by removing generic type parameter
yongkangc e418bb1
refactor: improve documentation for proof task handles in `Multiproof…
yongkangc 498cd20
Merge branch 'yk/worker_pool_storage_2' into yk/worker_pool_acc
yongkangc 1bbfc7c
clippy
yongkangc a654cf8
rm clone from `StorageProofInput`
yongkangc 3c00e98
refactor: use receiver to allow Account worker and storage workers ru…
yongkangc e427485
Removed the unused _proof_tx parameter from queue_storage_proofs
yongkangc 5647e22
avoid extra alloc on map
yongkangc b4d109b
clippy
yongkangc 84ad218
refactor: update account worker loop to use crossbeam sender for stor…
yongkangc 9e177f4
feat: add default account worker count for optimized I/O-bound coordi…
yongkangc 4596366
refactor: clarify comments for proof task handles in MultiproofManager
yongkangc 19a9e8b
comment
yongkangc 2091f0d
expect workers to be avaliable
yongkangc 4ca404e
bump up workers
yongkangc d66ed61
cli flag for storage
yongkangc 4aba3de
docs: update CLI reference for storage-worker-count flag
yongkangc 8e64738
docs: clarify storage-worker-count uses Tokio blocking pool
yongkangc 5d10934
feat: add storage and account worker count configuration options
yongkangc 05f177a
added a todo
yongkangc aae5c7a
refactor: simplify account multiproof function parameters
yongkangc 1bc2862
move the AccountMultiproofParams struct to just below AccountMultipro…
yongkangc 5a69925
Merge branch 'yk/worker_pool_storage_2' into yk/worker_pool_acc
yongkangc f23cfab
refactor: addressed dan's comment on making structs that encapsulate…
yongkangc 870938f
Merge branch 'main' into yk/worker_pool_acc
yongkangc 14def07
fmt
yongkangc 44bca43
made count same as storage worker
yongkangc d1eb0ec
Update crates/trie/parallel/src/proof_task.rs
yongkangc 4e00944
merge
yongkangc 3e957a5
refactor(tree): remove unused Factory generic from multiproof system …
yongkangc 18ff58d
fix clippy
yongkangc f692d75
fmt
yongkangc 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 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
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
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
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.
is this comment true? I would expect the storage workers to be I/O bound as well
Uh oh!
There was an error while loading. Please reload this page.
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.
@Rjected looking at storage workers:
reth/crates/trie/parallel/src/proof_task.rs
Line 592 in 2091f0d
implementation:
reth/crates/trie/trie/src/proof/mod.rs
Line 297 in 1d1fea7
storage worker does:
so imo storage workers does perform database I/O (reading trie nodes), tho it seems the bottleneck is the CPU-intensive Merkle proof computation, not the I/O.
wdyt?
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.
removed this for simplicity, and made the count the same as storage worker