Memory Sharing Over A Network
First Claim
1. A method of sharing memory storage capacity among multiple computing devices, the method comprising the steps of:
- receiving, at a first computing device, from a process executing on the first computing device, a memory-centric request specifying a memory address in a locally addressable memory namespace of the first computing device;
determining, at the first computing device, that the specified memory address is supported by memory installed on a second computing device;
translating, at the first computing device, the received request into network communications directed to the second computing device;
receiving, at the first computing device, network communications from the second computing device;
translating, at the first computing device, the received network communications from the second computing device into a response to the request; and
providing, at the first computing device, the response to the process.
3 Assignments
0 Petitions
Accused Products
Abstract
Memory is shared among physically distinct, networked computing devices. Each computing device comprises a Remote Memory Interface (RMI) accepting commands from locally executing processes and translating such commands into forms transmittable to a remote computing device. The RMI also accepts remote communications directed to it and translates those into commands directed to local memory. The amount of storage capacity shared is informed by a centralized controller, either a single controller, a hierarchical collection of controllers, or a peer-to-peer negotiation. Requests that are directed to remote high-speed non-volatile storage media are detected or flagged and the process generating the request is suspended such that it can be efficiently revived. The storage capacity provided by remote memory is mapped into the process space of processes executing locally.
42 Citations
20 Claims
-
1. A method of sharing memory storage capacity among multiple computing devices, the method comprising the steps of:
-
receiving, at a first computing device, from a process executing on the first computing device, a memory-centric request specifying a memory address in a locally addressable memory namespace of the first computing device; determining, at the first computing device, that the specified memory address is supported by memory installed on a second computing device; translating, at the first computing device, the received request into network communications directed to the second computing device; receiving, at the first computing device, network communications from the second computing device; translating, at the first computing device, the received network communications from the second computing device into a response to the request; and providing, at the first computing device, the response to the process. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A system sharing memory storage capacity among multiple computing devices, the system comprising:
-
a first computing device comprising; a first locally addressable memory namespace; a first memory; a first remote memory interface; and a first process executing on the first computing device; and a second computing device physically distinct from the first computing device, the second computing device comprising; a second operating system; a second memory, a portion of which is available for sharing with other computing devices of the system, the portion being delineated by the second operating system; and a second remote memory interface having direct access to the portion of the second memory; wherein the first locally addressable memory namespace is supported by both the first memory of the first computing device and by the portion of the second memory of the second computing device. - View Dependent Claims (15, 16, 17, 18)
-
-
19. A remote memory interface unit physically installed on a first computing device, the remote memory interface unit being configured to perform steps comprising:
-
receiving, from a process executing on the computing device, a memory-centric request specifying a memory address in a locally addressable memory namespace of the first computing device, the locally addressable memory namespace being supported both by a first memory installed on the first computing device and a portion of a second memory installed on a second computing device; determining, that the specified memory address corresponds to the portion of the second memory installed on the second computing device, the second computing device being remote from the first computing device; translating, the received request into network communications directed to the second computing device; receiving, network communications from the second computing device; translating, the received network communications from the second computing device into a response to the request; and providing, the response to the process. - View Dependent Claims (20)
-
Specification