-
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
Splitstore: Implement cold object reification #6868
Conversation
Turning this back to draft, as I am not convinced this is the right approach. |
Following discussion with @Stebalien it appears that this is the correct course of action:
This will ensure that we reify objects only when we really need to, and avoid accidental reification. In this light I am closing this pr; will open a new one with the desired implementation. |
On top of #6854
Closes #6726
This adds configurable cold object reification in the splitstore. We can do that now that #6705 is resolved.
Rationale: It has been observed that the hot range in my discard store still contains some references to the cold store (containing only the original snapshot data), even after rewarming up with #6867; afacit these are objects that get recreated by the VM and occurs-checked with Has, which avoids a write.
This patch adds a policy for cold object reification, with the following options:
The separation of view from get comes from the observation that state computations access objects with view to unmarshal, while chain exchange uses get to transmit over the network. Thus a setting of 1 should be safe; a setting of 2 becomes relevant only when we have gc for the coldstore, but it's there to future proof.