Patent ID: 7702789

Claim:
An apparatus to reassign a client, the apparatus comprising: a selection module that selects a second computation module with hardware compatible to a first computation module, the first computation module executing a software process for a client, the first computation module executing the software process from a software process image stored in a first storage system; a suspension module that suspends the software process such that the first computation module does not accept a client input; an execution state module that copies a computation module execution state from the first computation module to the second computation module; a memory map module that copies a memory map of the software process image stored in the first storage system from the first computation module to the second computation module, the memory map comprising addresses referring to the first storage system; a resumption module that resumes execution of the software process with the second computation module executing the software process from the software process image stored in the first storage system based on the copied memory map on the second computation module in response to the memory map module copying the memory map from the first computation module to the second computation module; a process image copy module that copies the software process image from the first storage system to a second storage system concurrent with the resumption of execution of the software process and modifies one or more addresses of the copied memory map on the second computation module to refer to the second storage system during execution of the software process by the second computation module in response to copying a block of the software process image to the second storage system, the block corresponding to the one or more addresses; and wherein the selection module, suspension module, execution module, memory map module, resumption module, and process image copy module comprise one or more of logic hardware and executable code, the executable code stored on a computer readable storage medium.