Title: Enabling Internet
1Enabling Internet Suspend/Resume with Session
Continuations
- Alex C. Snoeren
- MIT Laboratory for Computer Science
- (with Hari Balakrishnan, Frans Kaashoek, and Jon
Salz)
2Challenges of Suspend/Resume
How does the session resume?
What happens to the other end?
?
?
Its a state management problem.
3Suspend/Resume Tasks
- Intelligent disconnection handling
- Buffer otherwise lost communications
- Emulate remote services locally
- Release resources while disconnected
- Graceful resumption handling
- Reallocate resources and restore state
- Adapt to new network conditions
- Indicate how to resume processing
4Motivating Continuations
- Observation complete context inappropriate
- Some previous state irrelevant, or, even worse,
- Invalidated due to change in conditions
- Similar problem in programming languages
- Block when state and context is complex
- Pass continuation if state and context is small
- Continuations can request blocking behavior
5Using Continuations
- Expand session notion
- Align with application
- Annotate state, resources,
- associated computation
- Include system state
- Provide synchronization and preservation
assistance - Shared attribute/value store
- Persist local system IPC, file descriptors
- System invokes continuation at session resumption
- Generated in response to disconnection
notification
App
User level
SL
Kernel
6An Example SSH Session
- Remote log in / port forwarding
- Provides secure remote communication
- Data compressed and encrypted as a stream
7Conserving Session Resources
Resources dedicated to active session
emacs
gtgt Resources dedicated to suspended session
SSHd
Socket Buffers
Open Files
Release system resources as well
Network Ports
Kernel
Continuation generation is recursive!
8SSH Continuation
- Dont suspend until its convenient
- Process pending data, deliver to app or network
- Only a minimum of state to preserve
- Auth, crypto, and compression state
- Preserve IPC to child processes
- Notify child processes of disconnection
- Tunneled apps share connectivity fate
Added 250 LOC in an afternoon
9Continuation Efficiency
SSHd
FTPd
SSHd
FTPd
Anecdotal evidence of size and speed
10Conclusion Future Directions
- Continuations enable suspend/resume
- Integrates well with session model
- Support intelligent application adaptation
- Enable system resource conservation
- Useful for mobility across hosts?
- Continuations eliminate dependencies
- An area for future exploration