MemX: virtualization of cluster-wide memory
First Claim
1. A distributed virtual memory system, comprising:
- a block device interface, providing an interface between a first memory system of a client and a virtual distributed memory system having a linear I/O space;
a module configured to map the linear I/O space of the block device interface to a second memory system of at least one remote server, wherein memory pages are defined for communication through a network interface between the client and the at least one remote server, wherein a plurality of pages comprise a page group, and the module is further configured to inferentially determine a storage location of a memory page based on a logical position of the memory page within the page group and an algorithm; and
a write buffer configured to service write requests.
3 Assignments
0 Petitions
Accused Products
Abstract
MemX provides a distributed system that virtualizes cluster-wide memory to support data-intensive and large memory workloads in virtual machines (VMs), and provides benefits in virtualized settings: (1) VM workloads that access large datasets can perform low-latency I/O over virtualized cluster-wide memory; (2) VMs can transparently execute very large memory applications that require more memory than physical DRAM present in the host machine; (3) reduces the effective memory usage of the cluster by de-duplicating pages that have identical content; (4) existing applications do not require any modifications to benefit from MemX such as the use of special APIs, libraries, recompilation, or relinking; and (5) supports live migration of large-footprint VMs by eliminating the need to migrate part of their memory footprint resident on other nodes. Detailed evaluations show that large dataset applications and multiple concurrent VMs achieve significant performance improvements using MemX compared against virtualized local and iSCSI disks.
61 Citations
27 Claims
-
1. A distributed virtual memory system, comprising:
-
a block device interface, providing an interface between a first memory system of a client and a virtual distributed memory system having a linear I/O space; a module configured to map the linear I/O space of the block device interface to a second memory system of at least one remote server, wherein memory pages are defined for communication through a network interface between the client and the at least one remote server, wherein a plurality of pages comprise a page group, and the module is further configured to inferentially determine a storage location of a memory page based on a logical position of the memory page within the page group and an algorithm; and a write buffer configured to service write requests. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25)
-
-
26. A virtual memory system comprising:
-
a plurality of virtual machines configured to execute on common physical hardware having a memory; a common device driver domain, shared by the plurality of virtual machines; a hypervisor, coordinating the execution of the plurality of virtual machines and the common device driver domain; a network interface; and a virtual memory module, configured to at least one of; execute within a respective virtual machine and provide an interface to the common device driver configured as a large virtual memory for the respective virtual machine, supporting communication through the network interface controlled by the common device driver domain; execute within the common driver domain and service the plurality of virtual machines, providing a block memory device interface for each respective virtual machine; and execute within the hypervisor, and provide a virtual memory interface for the hypervisor, which is reported to the plurality of virtual machines as a large available memory pool, wherein the virtual memory module stores and retrieves information as memory pages wherein a plurality of memory pages together comprise a page group, and inferentially determines a storage location of a respective memory page of the page group selectively based on a logical position of the memory page within the page group and an algorithm.
-
-
27. A server module for a distributed virtual memory system, comprising:
-
a resource discovery transmission module, configured to periodically send resource announcement messages through a computer network, providing an indication of available local memory to the server module and load; a page serving module, configured to retrieve a page from local memory, append to the page an indication of available local memory to the server module and load, and transfer the appended page through the computer network; a page migration module, configured to migrate a page of memory to another server module across the computer network, and to send a message to a respective client to provide an update of a location of the migrated page; and wherein a plurality pages comprise a page group, and the page migration module inferentially determines a storage location of a respective page selectively based on a logical position of the respective page within the page group and an algorithm.
-
Specification