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

New storage backend and more ... #320

Merged
merged 43 commits into from Jan 13, 2020
Merged

New storage backend and more ... #320

merged 43 commits into from Jan 13, 2020

Conversation

@qianbin
Copy link
Member

qianbin commented Jan 2, 2020

Improvements include but not limited to:

  • Deeply optimized state trie storage and cache, brings

    • grouped and ordered trie nodes store results in faster state trie access, at least 2X for OP_SLOAD;
    • dynamic state trie pruner saving 80% disk space occupation;
    • multi-level caches reduce 50% RAM usage under default setting, without impacting performance;
    • and much lower disk IO.
  • Log db upgrade

    • newly designed table schemas compact db size to about 40% of previous.
    • optimized indexes extremely speed up most common queries.
  • Simplify block-chain store, by introducing the concept Repository, which is the container of chains.

  • Improve state error handling.

qianbin added 30 commits Dec 6, 2019
to allow advanced external caching
- introduce Repository to replace original Chain
- change Chain's definition, now Chain is more like a branch
- introduce index trie to replace ancestor trie
- remove Seeker and Fork components
- optmized data persistence
- expose state error in bultin contracts
- for native binding, panic on state error
- add ref table to map id <-> data which significantly reduces disk space useage
- optmize indexes to cover most cases
- remove time range query options
- add log Writer
@qianbin qianbin requested review from libotony and laalaguer and removed request for libotony and laalaguer Jan 4, 2020
@qianbin qianbin force-pushed the qianbin:muxdb branch 6 times, most recently from 8b5c209 to 2bfa1cc Jan 6, 2020
@qianbin qianbin force-pushed the qianbin:muxdb branch from 2bfa1cc to 2ee822e Jan 6, 2020
qianbin and others added 2 commits Jan 7, 2020
…oposerEndorsement could be set zero
@qianbin qianbin changed the base branch from master to code-is-entropy Jan 10, 2020
libotony and others added 3 commits Jan 10, 2020
- add option DisablePageCache
- expose more option fields
- add Trie.CommitPermanently method
- add some comments
@qianbin qianbin force-pushed the qianbin:muxdb branch from c7a7e1b to bea1f02 Jan 13, 2020
@qianbin qianbin merged commit 3e46954 into vechain:code-is-entropy Jan 13, 2020
1 check passed
1 check passed
continuous-integration/travis-ci/pr The Travis CI build passed
Details
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
2 participants
You can’t perform that action at this time.