Patent ID: 8527650

Claim:
A method comprising: responsive to a request to move a software partition from a departure server to an arrival server, freezing one or more processes of the software partition and freezing one or more communications of the one or more processes, wherein the one or more processes use a communication path for the one or more communications between the departure server and the arrival server; creating a set of checkpoint information for the software partition including state information for the one or more processes and state information for the one or more communications in the communication path; using the communication path to send the checkpoint information to the arrival server for resuming the one or more processes and the one or more communications in the arrival server; responsive to receiving a checkpoint request, creating, by a first processor on the departure server, a first checkpoint data in the set of checkpoints for a stream of the one or more communications, wherein the first checkpoint data checkpoint comprises state information for a set of processes executing on the departure server; responsive to receiving the checkpoint request, creating, by the first processor on the departure server, a second checkpoint data in the set of checkpoints for a set of modules used to send the stream to a transport layer, wherein the first checkpoint data and the second checkpoint data form the checkpoint, wherein the step of creating the second checkpoint data for the set of modules further comprises responsive to identifying an identity of each module in the set of modules, storing the identity of the each module in the set of modules in the second checkpoint data; responsive to identifying an order of the set of modules, storing the order of the set of modules in the second checkpoint data; responsive to sending a stream checkpoint message to the each module in the set of modules, receiving module data from the each module in the set of modules to form received module data; storing the received module data in the second checkpoint data; restarting, by a second processor on the arrival server, the stream after the first checkpoint and the second checkpoint have been created; and restarting, by the second processor on the arrival server, the set of modules after the first checkpoint and the second checkpoint have been created; wherein the communication path is to a transport layer in the departure server and the transport layer further communicates over a network with at least one other transport layer in the departure server.