Migrate is a system service that allows network applications to
suspend upon disconnection and properly resume when connectivity is restored.
Migrate uses session continuations, which allow applications to explicitly
record all the state and resources required to correctly resume. Migrate
virtualizes network connections to function across network address changes,
allows portions of an application to be suspended and securely resumed, and
optimizes scarce system resources on servers handling many suspended clients.
We demonstrate that the continuation abstraction is both useful and efficient
by showing how two important applications, SSH and Icecast, can use Migrate to
implement a suspend/resume feature. We find that the required source code
changes are between 0.5% and 1.75% of the total, that the generated
continuations are between 1% and 5% of the memory footprint of the entire
process, and that session resumption times are small (a few hundred
milliseconds) compared to typical disconnection durations. We also show that he
proposed system is scalable to support large number of simultaneous requests
for suspension/resumption.
Pre-2018 CSE ID: CS2008-0921