Download presentation
Presentation is loading. Please wait.
Published byMelinda Barrett Modified over 9 years ago
1
Enabling Internet “Suspend/Resume” with Session Continuations Alex C. Snoeren MIT Laboratory for Computer Science (with Hari Balakrishnan, Frans Kaashoek, and Jon Salz)
2
Challenges of “Suspend/Resume” What happens to the “other” end? How does the session resume? It’s a state management problem.
3
Suspend/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
4
Motivating 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
5
Using Continuations User level App Kernel SL 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
6
An Example: SSH Session Remote log in / port forwarding Provides secure remote communication Data compressed and encrypted as a stream SSHd shell emacs X app server client ssh
7
Conserving Session Resources SSHd emacs Socket Buffers Network Ports Open Files Kernel Resources dedicated to active session >> Resources dedicated to suspended session Release system resources as well Continuation generation is recursive!
8
SSH Continuation Don’t suspend until it’s 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
9
Continuation Efficiency Anecdotal evidence of size and speed SSHdFTPd 0 200 400 600 800 1000 1200 1400 1600 1800 2000 Memory Usage (KB) 0 50 100 150 200 250 300 Restart Latency (msec) SSHdFTPd System Resources Shared Pages Non-Shared Pages Startup Latency Session Overhead Session Continuation
10
Conclusion & 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…
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.