-
Notifications
You must be signed in to change notification settings - Fork 206
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
Track transcript SwingStore start position and have upgrade reset to end rather than beginning #3293
Comments
I think in retrospect that we do not need this, and we can close this issue. @warner ? |
After discussion, Brian and I concluded that we actually do need this, though it's relatively low priority. Moving back onto the backlog. |
Let's revisit whether we need this for MN-1, or if this is subsumed by other work that @warner is doing. |
Redefine this task in terms of keeping track of the historical state, possibly archiving the historical transcript prior to upgrade. |
@warner and I discussed this and concluded that the task needs doing but needs to be reconceptualized a bit. When a vat is upgraded, the transcript of its pre-upgrade life cannot safely be replayed by the post-upgrade version of its code. So upgrade was discarding the old transcript by resetting the Instead, we have decided that the correct strategy is to continue appending to the existing transcript, but keep track of the upgrade point so that replays will start from there instead of from 0 when there are no snapshots to begin replaying from. This motivates the addition of a If the disk space consumed by the growing transcript becomes an issue, at a future time we might add an operation to copy the historical portions of the transcript to an alternative (presumably cheaper) storage medium and truncate the leading portions of the active stream store accordingly. Depending on how replay from archival storage is implemented, this archiving might be entirely orthogonal to the |
(Note: this task has been redefined, see #3293 (comment) below. We are retaining the issue with its original summary for continuity, but the work to be done here is rather different from what was originally outlined.)
What is the Problem Being Solved?
The SwingStore's stream API provides read and write operations but not delete. Delete is not currently needed, but we will need it if we wish to retire a vat completely and reclaim its resources.
Description of the Design
The proposal here is to augment the
StreamStore
API with adeleteStream(streamName)
method, which will operate in a manner similar to the existingcloseStream
call but which will also delete the associated stream file.Security Considerations
I do not believe there are any particular security considerations here above and beyond those posed by access to the
StreamStore
API in the first place. Obviously there will remain policy questions about whether or not deleting a stream in any particular case is a good idea or not, in particular when we think keeping old streams around may be useful as a diagnostic aid. However, that is a pragmatic consideration rather than a security consideration per se.Test Plan
Augment the existing
StreamStore
API tests to exercise this operation and verify that the associated stream file is, in fact, gone after its use.The text was updated successfully, but these errors were encountered: