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

blockchain: Optimize exported header access. #1273

Merged
merged 1 commit into from
Jun 12, 2018

Commits on Jun 12, 2018

  1. blockchain: Optimize exported header access.

    This optimizes the FetchHeader function to make use of the fact that all
    block nodes are now in memory and therefore it is no longer necessary to
    consult the database for them.
    
    It also renames the function to HeaderByHash so it is consistent with
    other similar functions such as HeaderByHeight, BlockByHash, and
    BlockByHeight and updates all callers in the repo accordingly.
    
    This speeds up fetching all of the headers in the chain by roughly 3x to
    4x for a chain height of 246,000 headers.  Longer chains will benefit
    more.
    
    For example, here is some timing information before and after this
    commit plus the full block index in memory commit for 246,000 headers:
    
    7200 RPM HDD:
    -------------
    Previous fetch time: ~15.76s
    New fetch time: ~4.17s
    
    SSD:
    ----
    Previous fetch time: ~12.63s
    New fetch time: ~4.17s
    davecgh committed Jun 12, 2018
    Configuration menu
    Copy the full SHA
    a235b83 View commit details
    Browse the repository at this point in the history