Using the techniques described above (e.g., the hyper-kernel described above), a similar action can be taken. For example, when a guest virtual processor running under the direction of a guest operating system writes to a location in what it believes to be its local memory, if that memory is in the dynamic memory of the node, care must be taken to make sure that any other node having a local copy of that memory invalidates it's local copy, so that one true copy is maintained in only one place in the guest virtual machine. When memory is extended to a network attached memory, the same write should have the same effect.
Migration to and from Network-Attached Memory
Described herein is an overview of how to maintain strong cache coherency in the presence of networked attached memory. Additional details are described below.
In some embodiments, when a computation on a node attempts to read from a location that is stored and owned on another node, the resource migration algorithms such as those described above are executed to make sure that the computation and the memory are co-resident on the same node, either by moving the computation, or by moving the memory.
Techniques for extending resource migration to incorporate a network-attached memory flash appliance are described below.