Abstract:
Methods and systems are provided for fork-safe memory allocation from memory-mapped files. A child process may be provided a memory mapping at a same virtual address as a parent process, but the memory mapping may map the virtual address to a different location within a file than for the parent process.
Abstract:
Methods and apparatuses may be provided, where data is written to a first region of memory on a first memory appliance in response to a write operation, the first region of memory is external memory to the client device, and the first region of memory is accessible by the client device over a network via client-side memory access in which a first communication interface of the first memory appliance is configured to access the first region of memory on the first memory appliance; and where the data of the write operation is caused to be written to a second region of memory on a second memory appliance, and wherein the data of the write operation is recoverable from a subset of the memory regions, the subset excluding the first region of memory or the second region of memory.
Abstract:
Methods and systems for providing a virtualization instance on an apparatus access to external primary memory, where the external primary memory is memory that is external to the apparatus but primary memory to the apparatus. Methods and systems to migrate a virtualization instance from a first client to a second client are provided in which memory of the virtualization instance is copied to from a first region to a second region without being copied to or from the first client or the second client. Methods and systems are provided for limiting local primary memory usage by a virtualization instance. After the flushing or the shooting down a translation lookaside buffer, a selected memory portion corresponding to a page table entry is marked dirty based on a portion-tracking data structure indicating that the page table entry for the selected memory portion was dirty when the selected memory portion was unmapped.
Abstract:
A memory appliance may be provided comprising a processor, a communication interface, a memory, and a region access unit. The memory may be configured in an address space addressable by the processor. The communication interface may be configured to provide the client access to the region of the memory via client-side memory access before initialization of all of the region. A method to create a virtual copy of memory accessible by client-side memory access is also provided. A system may be provided that memory maps at least a portion of a file to a memory region, wherein a virtual address addressable is generated, and the at least a portion of file is accessible through the memory region at the virtual address. The virtual address may be registered with the communication interface, where registration of the virtual address provides client-side memory access to the memory region.
Abstract:
Methods and systems are provided for fork-safe memory allocation from memory-mapped files. A child process may be provided a memory mapping at a same virtual address as a parent process, but the memory mapping may map the virtual address to a different location within a file than for the parent process.
Abstract:
Dynamically provisionable and allocatable memory external to a requesting apparatus may be provided. A request for primary memory may be made by an application executing on a client. An allocation logic unit may determine an allocation strategy in response to the request. As part of the allocation strategy, the allocation logic unit may identify memory appliances on which memory regions are to be allocated. The allocated memory regions may form the primary memory that is allocated to the requesting application. The allocation logic unit may send region allocation requests to region access unit of the respective memory appliances. The memory appliances on which the memory regions are allocated may be external to the client. The application may access the allocated memory regions via client-side access in which one or more processors in the client and/or the memory appliances are bypassed.
Abstract:
A memory appliance may be provided comprising a processor, a communication interface, a memory, and a region access unit. The memory may be configured in an address space addressable by the processor. The communication interface may be configured to provide the client access to the region of the memory via client-side memory access before initialization of all of the region. A method to create a virtual copy of memory accessible by client-side memory access is also provided. A system may be provided that memory maps at least a portion of a file to a memory region, wherein a virtual address addressable is generated, and the at least a portion of file is accessible through the memory region at the virtual address. The virtual address may be registered with the communication interface, where registration of the virtual address provides client-side memory access to the memory region.
Abstract:
Methods and systems are provided for allocating memory. A portion of memory may be allocated by: selecting a type of memory to allocate in a client device from a group of memory types in response to a memory allocation request and/or in response to a request to access a portion of an address space, wherein the selection of the type of memory to allocate is based on an available memory determination; selecting a portion of the local primary memory, a portion of the external primary memory, or a portion of the memory-mapped file for the portion of memory to allocate at the client device depending on the selected type of memory; and mapping at least the selected portion to the address space.
Abstract:
Methods, devices, and executable instructions are provided for allocating external memory. A request to allocate a portion of memory may be received at a first device. A memory appliance and the first client device are connected by a network. A region of memory of the memory appliance may be allocated as external memory prior to receipt of the request to allocate the portion of memory at the first client device. A subset of the region of memory for the portion of memory allocated may be selected at the first client device and in coordination with a second client device on the network, wherein the portion of memory allocated is external to the first client device and yet is primary memory to the first client device. At least the subset of the region of memory may be mapped at the first client device to a virtual address space.
Abstract:
Dynamically provisionable and allocatable memory external to a requesting apparatus may be provided. A request for primary memory may be made by an application executing on a client. An allocation logic unit may determine an allocation strategy in response to the request. As part of the allocation strategy, the allocation logic unit may identify memory appliances on which memory regions are to be allocated. The allocated memory regions may form the primary memory that is allocated to the requesting application. The allocation logic unit may send region allocation requests to region access unit of the respective memory appliances. The memory appliances on which the memory regions are allocated may be external to the client. The application may access the allocated memory regions via client-side access in which one or more processors in the client and/or the memory appliances are bypassed.