Skip to content
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

[Access] Index Execution Data #4653

Merged
merged 230 commits into from
Sep 29, 2023
Merged

[Access] Index Execution Data #4653

merged 230 commits into from
Sep 29, 2023

Conversation

sideninja
Copy link
Contributor

@sideninja sideninja commented Aug 23, 2023

Closes: #4639

This PR implements a state execution indexer module. It's broken down into two parts, the worker and indexer. The worker takes care of consuming new execution data from the execution data requester engine. It builds up a jobqueue to process each newly available execution data provided by the execution data requester.
The indexer module makes sure the data it receives is correctly transformed, the range for indexing is validated and it uses the register storage interface to store the data into the index database.

This PR intentionally skips building this module as part of the access node builder since it's not ready to be built yet, and misses root snapshot data ingestion. It also doesn't include an admin command that was created to query registers. Both of those will be additional PRs.

A simple design schema:
Screenshot 2023-09-22 at 12 58 47

@sideninja sideninja self-assigned this Aug 23, 2023
@sideninja sideninja changed the base branch from master to petera/index-execution-data August 23, 2023 15:38
@github-actions
Copy link
Contributor

github-actions bot commented Aug 23, 2023

FVM Benchstat comparison

This branch with compared with the base branch onflow:master commit a8f28b9

The command (for i in {1..7}; do go test ./fvm ./engine/execution/computation --bench . --tags relic -shuffle=on --benchmem --run ^$; done) was used.

Collapsed results for better readability

old.txtnew.txt
time/opdelta
ComputeBlock/16/cols/128/txes/1/max-concurrency-26.74s ± 0%7.06s ± 0%~(p=1.000 n=1+1)
ComputeBlock/16/cols/128/txes/2/max-concurrency-27.17s ± 0%7.35s ± 0%~(p=1.000 n=1+1)
 
us/txdelta
ComputeBlock/16/cols/128/txes/1/max-concurrency-23.29k ± 0%3.44k ± 0%~(p=1.000 n=1+1)
ComputeBlock/16/cols/128/txes/2/max-concurrency-23.50k ± 0%3.59k ± 0%~(p=1.000 n=1+1)
 
alloc/opdelta
ComputeBlock/16/cols/128/txes/1/max-concurrency-21.68GB ± 0%1.66GB ± 0%~(p=1.000 n=1+1)
ComputeBlock/16/cols/128/txes/2/max-concurrency-21.70GB ± 0%1.71GB ± 0%~(p=1.000 n=1+1)
 
allocs/opdelta
ComputeBlock/16/cols/128/txes/1/max-concurrency-221.9M ± 0%21.9M ± 0%~(p=1.000 n=1+1)
ComputeBlock/16/cols/128/txes/2/max-concurrency-222.6M ± 0%22.6M ± 0%~(p=1.000 n=1+1)
 

Copy link
Contributor

@peterargue peterargue left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks good. great work!

Key: id,
Value: payload.Value(),
}
j++
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what is the j for?

@sideninja sideninja enabled auto-merge September 28, 2023 20:59
@sideninja sideninja added this pull request to the merge queue Sep 29, 2023
Merged via the queue into master with commit 8104663 Sep 29, 2023
35 of 36 checks passed
@bors bors bot deleted the gregor/index-exeuction-data branch September 29, 2023 01:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Script Execution] Execution Data Index
5 participants