Patent ID: 8671256

Claim:
A system for migrating contents of a memory on a virtual machine, the system comprising a memory in communication with a computer processor, the system configured to execute a method, the method comprising: executing a source virtual machine on a host system, the source virtual machine including a memory; executing a hypervisor on the host system, the hypervisor in communication with the source virtual machine; transmitting contents of the memory on the source virtual machine to a target virtual machine according to a data migration order, the data migration order determined based on system configuration information, the system configuration information comprising an operating system executing on the source virtual machine and migration profiles comprising mappings of known operating systems to migration routines optimized for the known operating systems, the migration routines, including memory characteristics specific to the known operating systems that have an impact on migration order; determining that one or more pages have been modified on the source virtual machine subsequent to being transmitted to the target virtual machine; and based on determining that one or more of the pages have been modified: transmitting the modified pages including a page offset and page content for each of the modified pages to the target virtual machine, the modified pages transmitted in a data structure comprising packed pairs of the page offset and the page content for each of the modified pages; continuing the determining and transmitting the updated pages until the number of remaining pages that have been modified is less than a threshold; pausing the source virtual machine; based on the pausing, transmitting the remaining modified pages to the target virtual machine; and transmitting an invalid page offset indicating one of an end of readable data in a buffer, and that no jump is necessary as a next page is sequentially aligned.