1. A computer program product for resource recovery, comprising: a non-transitory computer readable storage device; and program code on the non-transitory computer readable storage device that when executed by a processor within a primary host machine comprising a first virtual machine with the processor, a memory, and an application executing on the processor that accesses the memory, the program code performs a series of functions comprising: receiving, from the application, a memory mapping of the application within the memory that comprises a plurality of regions including at least one first region and at least one second region; marking, via a mark purgeable function, the at least one second region as a purgeable memory that will not be tracked, wherein the purgeable memory can be reconstructed by the application at a second virtual machine of a secondary host machine when the purgeable memory is unavailable; in response to marking the purgeable memory, tracking the at least one first region within the memory mapping for changes; in response to stopping execution of the first virtual machine: forwarding only the changes to the at least one first region to the second virtual machine, wherein any changes to the purgeable memory are not forwarded to the secondary host machine; and in response to completing the forwarding of the changes, resuming execution of the first virtual machine; and in response to an occurrence of a failure condition on the first virtual machine: reconstructing the purgeable memory by the application at the second virtual machine; and signaling the secondary host machine to continue execution of the application using the forwarded changes to the at least one first region.