-
Notifications
You must be signed in to change notification settings - Fork 229
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
feat: vat warehouse for LRU demand paged vats #2784
Conversation
db12211
to
485be22
Compare
fa6df42
to
e6446f6
Compare
794cbf1
to
10c4d44
Compare
88d3016
to
2ec7821
Compare
@warner adding that ref 299d55c |
After thorough investigation, let's be explicit that panic() does not (unconditionally) throw but rather normally returns. Add explicit default value for err arg too. Also, clean up a couple awaits on resolveToError(), which does not return a Promise.
initial policy: most recently used 20 vats are kept online Note that it's important to handle rejection in wasTerminated: in addition to the error path for the failed execution, there's an error generated when shutting down the xsnap subprocess. - buildKernel: - makeVatWarehouse takes over - instantiating static, dynamic vats in start() - ephemeral.vats - vatWarehouse.lookup() replaces ephemeral.vats.has() - addVatManager, removeVatManager - deliverToVat - re-wire notifyTermination - makeVatLoader: - create methods return Promise<VatManager> - translators are passed in - no longer uses vatNameToID, queueToExport - notifyTermination has been hoisted to its own file - clarify source bundle type - test vat-target: exhibit stateful behavior
- replace boolean shortcuts with helper function - convert lookup from arrow function - note optimization opportunity: replay vats in parallel
- note makeVatTranslators precondition - punt on provideVatKeeper refactor - punt on note about comms vat source repeated We had a TODO to "add a way to remove a vatKeeper from ephemeral in kernel.js so that we can get rid of a vatKeeper when we evict its vat"; I tried a `pruneVatKeeper()` method on `kernelKeeper` but it failed with `resolution of "kp40" is still pending`.
- provide type for kernel - factor out defensiveCopy
Thanks for review, BW.
done.
right; I down-graded "fixes 2277" until we have those tickets. |
was designed to fix #2277, but some stuff below remains; perhaps for issues to-be-filed...
leaving aside restore from snapshot for the initial version
(no longer based on #2370)