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

[EN Performance] Determine if checkpoint file should be split up and processed in parallel to resolve several issues #3075

Closed
fxamacker opened this issue Aug 23, 2022 · 0 comments · Fixed by #3273
Assignees
Labels
Execution Cadence Execution Team

Comments

@fxamacker
Copy link
Member

fxamacker commented Aug 23, 2022

Problem

Checkpoint file is around 160GB and growing. Also, state extraction during mainnet spork should be faster. Lastly, we currently evict entire 160GB checkpoint file from Linux page cache when the file is closed.

Updates #1744

The Proposed Solution

Determine if we should split up the checkpoint file and process portions in parallel to:

  • Speedup checkpointing.
  • Speedup state extraction during mainnet spork.
  • Eliminate the need to evict segments of 160GB checkpoint file from Linux page cache during use.

PR #3050 (merged on Aug 23 and not deployed to August Spork) set the foundation for parallel processing of subtries by splitting up the mtrie into 16 subtries. It will reduce peak RAM use (max RSS) by dozens of GB once deployed. Parallel processing in future PR will use up of some or all of that memory reduction.

Caveats

Considerations include third parties who currently read and parse the checkpoint file with their own software.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Execution Cadence Execution Team
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant