Instead of explicitly requesting Pause vs Suspend, I think applications should request Suspend with an argument specifying their tolerance, naming is hard but Durable: true or something like that, opt-in.
When applications do not specify, substrate can intelligently handle suspension, e.g. in the future it might:
- Suspend to local disk
- Decide not to suspend immediately due to low load
- Automatically move snapshots between nodes p2p to rebalance
- Decide to move the snapshot to cloud storage
- Live migrate sandboxes
Only if you have a hard need for an immediate backup, then we should explicitly move the snapshot to cloud storage (S3, GCS, ...).
I think the current Pause vs Suspend inverts this and doesn't give a lot of room to implement things like automatically moving snapshots between machines or live-migrate microVMs
See related discussion in #660
And previously #119
Instead of explicitly requesting Pause vs Suspend, I think applications should request
Suspendwith an argument specifying their tolerance, naming is hard butDurable: trueor something like that, opt-in.When applications do not specify, substrate can intelligently handle suspension, e.g. in the future it might:
Only if you have a hard need for an immediate backup, then we should explicitly move the snapshot to cloud storage (S3, GCS, ...).
I think the current Pause vs Suspend inverts this and doesn't give a lot of room to implement things like automatically moving snapshots between machines or live-migrate microVMs
See related discussion in #660
And previously #119