-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
Implement splitstore cold object reification #6914
Conversation
89afd63
to
6335d03
Compare
rebased on master. |
73d4075
to
0220f29
Compare
rebased on master. |
1c677eb
to
4af2426
Compare
did a rebase and some commit management; there is no need to change the VM, the view should be provided by |
ef58a19
to
89c26ba
Compare
rebased on master. |
89c26ba
to
455fd85
Compare
rebased on master. |
Codecov Report
@@ Coverage Diff @@
## master #6914 +/- ##
==========================================
+ Coverage 39.84% 39.93% +0.08%
==========================================
Files 632 634 +2
Lines 66955 67085 +130
==========================================
+ Hits 26681 26793 +112
+ Misses 35683 35668 -15
- Partials 4591 4624 +33
Continue to review full report at Codecov.
|
So that we an safely garbage collect.
following sync discussion with @magik6k we decided to use a context option for reification and only do it for block validation. Will rework this after the blockstore upgrade work is done. |
Closing to cherry pick and rework on top of #8008. |
See #6726 for context.
This implements a specialized view for the splitstore which reifies cold objects on hotstore misses.
The view is hooked to the VM through the constructor for now but I am not sure that's the right place to do it.One alternative would be to changeChainstore.StateBlockstore()
to take a hotview parameter, but that would touch too many call sites.But maybe that's the right thing to do, open to discussion about this.Another alternative is to make aChainstore.StateBlockstoreHotView()
and call that when we want to use the hotview.We'd have to go through the vm constructor call sites and see whether we want to use it.Edit: the hotview is presented through the
StateBlockstore
accessor inChainstore
. This ensure that state accesses are reifying. Maybe that's too broad though and we need to introduce and alternate accessor which uses the reifying view, and hunt down callsites to decide what's appropriate.