IP Library Patent Application 12266492
Patent Application
App. No. 12/266,492

NETWORK WITH DISTRIBUTED SHARED MEMORY

Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US None
App. No.
12/266,492
Abstract

A computer network with distributed shared memory, including a clustered memory cache aggregated from and comprised of physical memory locations on a plurality of physically distinct computing systems. The clustered memory cache is accessible by a plurality of clients on the computer network and is configured to perform page caching of data items accessed by the clients. The network also includes a policy engine operatively coupled with the clustered memory cache, where the policy engine is configured to control where data items are cached in the clustered memory cache.

Claims (46)

1 . A computer network with distributed shared memory, comprising:

a clustered memory cache aggregated from and comprised of physical memory locations on a plurality of physically distinct computing systems, where the clustered memory cache is accessible by a plurality of clients on the computer network and configured to perform page caching of data items accessed by the clients; and

a policy engine operatively coupled with the clustered memory cache, where the policy engine is configured to control where data items are cached in the clustered memory cache.

2 . The computer network of claim 1 , where the policy engine is configured to control where a data item is cached in the clustered memory cache based on usage information associated with each of the physical memory locations of the clustered memory cache.

3 . The computer network of claim 2 , where the usage information for each of the physical memory locations of the clustered memory cache is stored in a metadata store which is operatively coupled with the policy engine and the clustered memory cache.

4 . The computer network of claim 3 , further comprising a plurality of local cache managers, each of which is local to and associated with a different portion of the clustered memory cache, where the usage information for each of the different portions of the clustered memory cache is reported to the metadata store by the associated local cache manager.

5 . The computer network of claim 2 , where the usage information includes information about locks on cached data items granted to any of the clients.

6 . The computer network of claim 2 , where the policy engine is configured to attempt cache insertions in less used portions of the clustered memory cache.

7 . The computer network of claim 1 , where the policy engine is configured to control where a data item is cached in the clustered memory cache based on relative location in the computer network of one of the clients to different portions of the clustered memory cache.

8 . The computer network of claim 1 , where the policy engine is configured to control where a data item is cached in the clustered memory cache based on a type determination of the data item.

9 . The computer network of claim 1 , where the policy engine is configured to control where a data item is cached in the clustered memory cache based on an auxiliary store location of the data item.

10 . The computer network of claim 1 , where in response to a request issuing from any of the clients for a data item not present in the clustered memory cache, the policy engine is configured to control whether or not an attempt will be made to cache such data item in the clustered memory cache.

11 . The computer network of claim 1 , further comprising:

a plurality of local cache managers, each of the local cache managers being local to and associated with a different portion of the clustered memory cache; and

a metadata store operatively coupled with the policy engine and with the local cache managers, where the metadata store is configured to store metadata associated with the different portions of the clustered memory cache, and where such metadata is updated at the metadata store based on reporting from the local cache managers to the metadata store.

12 . The computer network of claim 11 , where the reporting from the local cache managers to the metadata store occurs over a network connection of the computer network.

13 . The computer network of claim 1 , where the policy engine is configured to control a relocation of a cached data item from a first location in the clustered memory cache to a second location in the clustered memory cache.

14 . The computer network of claim 1 , where the policy engine is configured to effect cache striping of a data item across multiple locations of the clustered memory cache.

15 . A computer network with distributed shared memory, comprising:

a clustered memory cache comprised of physical memory from multiple computing systems that are physically distinct from one another;

a plurality of local cache managers, each being local to and associated with a different portion of the clustered memory cache;

a metadata store operatively coupled with the local cache managers and configured to store metadata associated with the different portions of the clustered memory cache, where such metadata is updated at the metadata store based on reporting from the local cache managers to the metadata store; and

a policy engine operatively coupled with the metadata store and the local cache managers, where the policy engine is configured to selectively cause sending of cache insertion and cache eviction requests to selected ones of the local cache managers based on the metadata in the metadata store.

16 . The computer network of claim 15 , where the reporting from the local cache managers to the metadata store occurs over network connections of the computer network.

17 . The computer network of claim 16 , where the clustered memory cache is accessible by a plurality of clients on the computer network and configured to perform page caching of data items accessed by the clients.

18 . A networked computer system with a networked memory resource, comprising:

a plurality of local memory managers, each of which is configure to run on a different one of a plurality of physically distinct computing systems operatively coupled with each other via network infrastructure;

a metadata service operatively coupled with each the local memory managers via the network infrastructure;

where the metadata service and the local memory managers are configured to communicate with each other to provide the metadata service with metadata about physical memory locations disposed on each of the plurality of physically distinct computing systems, so as to enable clients to use the physical memory locations collectively as an undifferentiated memory resource;

a policy engine coupled with the metadata service and configured to selectively cause sending of cache insertion and cache eviction requests to selected ones of the local memory managers based on the metadata in the metadata service.

19 . A method of operating a networked memory resource, comprising:

running a local memory manager on each of a plurality of physically distinct computing systems operatively coupled with each other via network infrastructure;

instantiating a metadata service operatively coupled with each the local memory managers via the network infrastructure;

conducting communications between the local memory managers and the metadata service to provide the metadata service with information about physical memory locations disposed on each of the plurality of physically distinct computing systems;

employing the metadata service as a directory service to facilitate aggregation of and addressing of the physical memory locations of each of the plurality of physically distinct computing systems, such that the physical memory locations are collectively usable by clients as an undifferentiated memory resource;

implementing a policy regime at the metadata service to control what portions of the undifferentiated memory resource are utilized in response to client requests.

20 . A method of sharing memory in a computer network, comprising:

aggregating physical memory from a plurality of physically distinct computing systems into an undifferentiated memory resource usable by a plurality of clients coupled with the undifferentiated memory resource via network infrastructure;

inserting and evicting data items into and from the undifferentiated memory resource in response to requests from the plurality of clients; and

in response to the requests from the plurality of clients, applying system policies to selectively control where data items are located in the undifferentiated memory resource.

21 . The method of claim 20 , where applying system policies to selectively control where data items are located in the undifferentiated memory resource includes, for one of the requests, placing a data item in a location in the undifferentiated memory resource so as to optimize a network data path between the location and a user of the data item.

22 . The method of claim 20 , where applying system policies to selectively control where data items are located in the undifferentiated memory resource includes, for one of the requests, placing a data item in a location in the undifferentiated memory resource so as to optimize a network data path between the location and an auxiliary store of the data item.

23 . The method of claim 20 , where applying system policies to selectively control where data items are located in the undifferentiated memory resource includes applying redundancy techniques to increase recoverability of the data items.

24 . The method of claim 20 , where applying system policies to selectively control where data items are located in the undifferentiated memory resource includes relocating one or more data items from a first location to a second location within the undifferentiated memory resource.

25 . The method of claim 24 , where said relocating is performed in response to a failure condition associated with one of the plurality of physically distinct computing systems.

26 . The method of claim 24 , where said relocating is performed in response to identification of a high use condition associated with the first location, such that migration from the first location to the second location enhances load balancing of the undifferentiated memory resource.

Assignments (5)
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
MERGER Recorded Feb 18, 2016
From: RNA NETWORKS, INC.
To: DELL PRODUCTS L.P.
Reel/Frame 037769/0776 →
RELEASE Recorded Jun 23, 2011
From: SILICON VALLEY BANK
To: RNA NETWORKS, INC.
Reel/Frame 026509/0820 →
SECURITY AGREEMENT Recorded Sep 30, 2010
From: RNA NETWORKS, INC.
To: SILICON VALLEY BANK
Reel/Frame 025074/0306 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 19, 2009
From: GROSS, JASON P.; PANDIT, RANJIT B.; COOK, CLIVE G.; MATSON, THOMAS H.
To: RNA NETWORKS, INC.
Reel/Frame 022285/0646 →