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

Enable stateless vats the option to run without a transcript #3217

Closed
FUDCo opened this issue May 31, 2021 · 1 comment · Fixed by #3257
Closed

Enable stateless vats the option to run without a transcript #3217

FUDCo opened this issue May 31, 2021 · 1 comment · Fixed by #3257
Assignees
Labels
enhancement New feature or request SwingSet package: SwingSet

Comments

@FUDCo
Copy link
Contributor

FUDCo commented May 31, 2021

What is the Problem Being Solved?

Some vats are entirely stateless or maintain all of their state in secondary storage (notably the comms vat and likely also the vattp vat once a little work is done on it). For these vats, replaying their transcript on restart is pointless, because the purpose of replay is to recover hidden internal state which makes no sense if there isn't any. If replay is pointless, then it follows that the transcript serves no operational purpose and therefor we can save disk space (in the case of the comms vat, potentially very large amounts of disk space) by not recording the transcript in the first place. Not recording the transcript may also provide a modest performance boost for these vats by virtue of skipping the disk writes and the logic that drives them.

Description of the Design

The most obvious thing is to have this be a new configuration option, say stateless or noTranscript, presumably a boolean. It makes sense to control it as a configuration option (rather than, say, putting it into the vat's initialization code) because although we'd like to be able to dispense with the transcript for operations, it may prove helpful during development and shakedown to have a recording of what happened if something went wrong.

When this flag is enabled, the recording of the transcript will be skipped. The replay logic will also have to be changed to regard the absence of a transcript for such vats as normal and expected.

Security Considerations

Care needs to be take to ensure that any vat that employs this option is actually stateless, lest some kind of visible non-determinism leak in.

@FUDCo FUDCo added enhancement New feature or request SwingSet package: SwingSet labels May 31, 2021
@FUDCo FUDCo self-assigned this May 31, 2021
@FUDCo
Copy link
Contributor Author

FUDCo commented May 31, 2021

@warner

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request SwingSet package: SwingSet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant