IP Library Granted Patent US 9,098,463
Granted Patent B2
US 9,098,463 · App. 13/229,281 · Granted Aug 4, 2015

Network with distributed shared memory

Inventors: Jason P. Gross (Portland, OR); Ranjit B. Pandit (Hillsboro, OR); Clive G. Cook (Portland, OR); Thomas H. Matson (Portland, OR)
Assignee: Dell Products L.P.
G06F15/167G06F12/0813H04L67/1097H04L67/2842
View Patent ↗
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 9,098,463
App. No.
13/229,281
Filed
Sep 9, 2011
Granted
Aug 4, 2015
Kind
B2
Art Unit
2444
USPC
709/213
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 network also includes a plurality of local cache managers, each of which are associated with a different portion of the clustered memory cache, and a metadata service operatively coupled with the local cache managers. Also, a plurality of clients are operatively coupled with the metadata service and the local cache managers. In response to a request issuing from any of the clients for a data item present in the clustered memory cache, the metadata service is configured to respond with identification of the local cache manager associated with the portion of the clustered memory cache containing such data item.

Claims (48)

1. A computer network with distributed shared random access memory (RAM), comprising:

a clustered memory cache aggregated from and comprised of physical memory locations on RAM chips of a plurality of physically distinct computing systems, the plurality of physically distinct computing systems each including a processor and a memory and operatively coupled via the computer network;

a plurality of local cache managers each executed by the processor and the memory of one of the plurality of physically distinct computing systems, each of the local cache managers being local to and associated with a portion of the clustered memory cache;

a metadata service, executed by a processor and a memory of a first computing system, and operatively coupled with each of the local cache managers via a network and including a metadata store that stores, for each of the portions of the clustered memory cache, a hash of a path to the portion of the clustered memory cache indicating which of the plurality of local cache managers manages that portion of the clustered memory cache;

a plurality of clients operatively coupled with the metadata service and the local cache managers; and

a configuration manager, executed by a processor and a memory of a second computing system, and operatively coupled to the plurality of clients, the configuration manager configured to register each of the clients with the metadata service,

where in response to a request issuing from any of the clients for a data item present in the clustered memory cache, the metadata service is configured to send a response to the client with an identification of the local cache manager associated with the portion of the clustered memory cache containing such data item based on the hash of the path to the portion of the clustered memory cache in the metadata store, the identification of the local cache manager being different from an identification of the metadata service.

2. The computer network of claim 1 , where at least some of the local cache managers are separated from the metadata service via network connections of the computer network.

3. The computer network of claim 2 , where in response to a request issuing from any of the clients for a data item not present in the clustered memory cache, the metadata service is configured to select a location of the clustered memory cache for caching of such data item.

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

5. The computer network of claim 2 , where each of the local cache managers is configured to control granting of locks to any of the clients requesting access to data items cached in the portion of the clustered memory cache associated with the local cache manager.

6. The computer network of claim 2 , where the metadata service IS configured to maintain a metadata store of metadata for the portions of the clustered memory cache, and where the metadata is updated in response to messaging received from the local cache managers.

7. The computer network of claim 6 , where the metadata includes a status indicator for each of the portions of the clustered memory cache.

8. The computer network of claim 6 , where the metadata includes information about cache locks granted to clients for the different portions of the clustered memory cache.

9. The computer network of claim 2 , where the clustered memory cache is configured to permit caching of application-specific data.

10. The computer network of claim 2 , where the clustered memory cache is configured to dynamically vary in size during operation.

11. The computer network of claim 10 , where the configuration manager is configured to register additional physical memory locations to be added to the clustered memory cache, and where the configuration manager is configured to engage in messaging with the metadata service regarding such additions, thereby permitting dynamic variation in size of the clustered memory cache.

12. The computer network of claim 11 , where such additional physical memory locations are on additional physically distinct computing systems.

13. The computer network of claim 2 , where the metadata service is configured to direct cache insertion requests and cache eviction requests to the local cache managers, the local cache managers being configured to selectively grant or deny such requests and perform the respective insertions and evictions when such requests are granted.

14. The computer network of claim 2 , where the metadata service 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.

15. The computer network of claim 2 , where each of the local cache managers is running on a different one of the physically distinct computing systems, and where the portion of the clustered memory cache associated with that local cache manager is comprised of physical memory locations on the same physically distinct computing system.

16. The computer network of claim 2 , where the local cache managers are configured such that any access request by one of the clients for a data item in the clustered memory cache is negotiated between the client and the local cache manager associated with the portion of the clustered memory cache containing the data item.

17. A method of operating a networked random access memory (RAM) resource, comprising:

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

instantiating a metadata service on a processor and a memory of a first computing system operatively coupled with each of the local memory managers via the network infrastructure;

registering each of a plurality of clients with the metadata service using a configuration manager, the configuration manager instantiated on a processor and a memory of a second computing system;

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

storing, at a metadata service data store included in the metadata service, the information as a plurality of tags, each of the plurality of tags including a hash of a path of a data item resident in the physical RAM location associated with that tag, each tag being associated with one of the physical RAM locations;

for each of the plurality of tags, storing, at the metadata service data store, memory management information including an indication of which of the local memory managers is associated with that tag; and

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

18. The method of claim 17 , further comprising, in response to a client request for a requested data item, determining whether the requested data item is cached in the undifferentiated memory resource by performing a hashing operation on the requested data item and comparing a resulting hash to the plurality of tags in the metadata service data store.

19. The method of claim 18 , where determining whether the requested data item is cached in the undifferentiated memory resource includes querying the metadata service, and where if the data item is present in the undifferentiated memory resource, the metadata service is configured to respond with identification of a particular location within the undifferentiated memory resource from which the data item may be accessed based on the memory management information stored in the metadata service data store.

20. The method of claim 17 , further comprising, in response to a client request for a data item, determining whether to place a copy of the data item in the undifferentiated memory resource.

21. The method of claim 20 , where determining whether to place a copy of the data item in the undifferentiated memory resource includes determining, at a source of the client request, whether the data item is eligible for caching in the undifferentiated memory resource.

22. The method of claim 20 , where determining whether to place a copy of the data item in the undifferentiated memory resource includes determining, at the metadata service, whether the data item is eligible for caching in the undifferentiated memory resource.

23. The method of claim 20 , further comprising, in response to a client request for a data item, determining a particular location in the undifferentiated memory resource to place a copy of the data item.

24. The method of claim 23 , where determining the particular location in the undifferentiated memory resource to place a copy of the data item includes comparing a data path from a user of the data item to a first candidate location with the data path from the user of the data item to a second candidate location.

25. The method of claim 23 , where determining the particular location in the undifferentiated memory resource to place a copy of the data item includes comparing a data path from an auxiliary store of the data item to a first candidate location with the data path from the auxiliary store of the data item to a second candidate location.

26. A networked computer system with a networked random access memory (RAM) resource, comprising:

a plurality of local memory managers, each of which is configured to run on a processor and a memory of a different one of a plurality of physically distinct computing systems operatively coupled with each other via network infrastructure; a metadata service, executed by a processor and a memory of a first computing system, operatively coupled with each of the local memory managers via the network infrastructure; and

a configuration manager, executed by a processor and a memory of a second computing system, and operatively coupled to the metadata service, where the configuration manager is configured to register each of a plurality of clients with the metadata service,

where the metadata service and the local memory managers are configured to communicate with each other to provide the metadata service with a plurality of hashes of paths to physical RAM locations disposed on each of the plurality of physically distinct computing systems, the metadata service including a metadata service data store that stores the plurality of hashes of paths to physical RAM locations as a plurality of tags and memory management information including an indication of which of the local memory managers is associated with each of the plurality of tags, each tag being associated with one of the physical RAM locations;

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

27. The system of claim 26 , where the metadata service is configured to respond to a client request for a data item by determining whether the data item is cached in the undifferentiated memory resource.

28. The system of claim 27 , where the metadata service is configured to respond to the client request by indicating where the data item is cached in the undifferentiated memory resource.

29. The system of claim 26 , where the metadata service is configured to respond to a client request for a data item by determining whether to place a copy of the data item in the undifferentiated memory resource.

30. The system of claim 26 , where the metadata service is configured to control whether data items accessible from the networked computer system are to be cached in the undifferentiated memory resource.

31. The system of claim 26 , where the metadata service is configured to respond to a client request for a data item by determining where to cache the data item in the undifferentiated memory resource.

Assignments (18)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
SECURITY AGREEMENT Recorded Apr 22, 2020
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 053546/0001 →
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 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 14, 2016
From: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: DELL MARKETING L.P.; ASAP SOFTWARE EXPRESS, INC.; APPASSURE SOFTWARE, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL PRODUCTS L.P.; DELL USA L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040065/0618 →
RELEASE OF SECURITY INTEREST Recorded Sep 14, 2016
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: DELL MARKETING L.P.; ASAP SOFTWARE EXPRESS, INC.; APPASSURE SOFTWARE, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL PRODUCTS L.P.; DELL USA L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040040/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 13, 2016
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: DELL MARKETING L.P.; ASAP SOFTWARE EXPRESS, INC.; APPASSURE SOFTWARE, INC.; COMPELLANT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL PRODUCTS L.P.; DELL USA L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040065/0216 →
MERGER Recorded Feb 18, 2016
From: RNA NETWORKS, INC.
To: DELL PRODUCTS L.P.
Reel/Frame 037769/0776 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Jan 2, 2014
From: APPASSURE SOFTWARE, INC.; ASAP SOFTWARE EXPRESS, INC.; BOOMI, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL USA L.P.; FORCE10 NETWORKS, INC.; GALE TECHNOLOGIES, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS FIRST LIEN COLLATERAL AGENT
Reel/Frame 031897/0348 →
PATENT SECURITY AGREEMENT (ABL) Recorded Jan 2, 2014
From: DELL INC.; APPASSURE SOFTWARE, INC.; ASAP SOFTWARE EXPRESS, INC.; BOOMI, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL USA L.P.; FORCE10 NETWORKS, INC.; GALE TECHNOLOGIES, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 031898/0001 →
PATENT SECURITY AGREEMENT (TERM LOAN) Recorded Jan 2, 2014
From: DELL INC.; APPASSURE SOFTWARE, INC.; ASAP SOFTWARE EXPRESS, INC.; BOOMI, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL USA L.P.; FORCE10 NETWORKS, INC.; GALE TECHNOLOGIES, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 031899/0261 →
MERGER Recorded Nov 25, 2013
From: RNA NETWORKS, INC.
To: DELL PRODUCTS L.P.
Reel/Frame 031667/0387 →
MERGER Recorded Nov 22, 2013
From: RNA NETWORKS, INC.
To: DELL PRODUCTS, LP
Reel/Frame 031657/0424 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 14, 2011
From: GROSS, JASON P.; PANDIT, RANJIT B.; COOK, CLIVE G.; MATSON, THOMAS H.
To: RNA NETWORKS, INC.
Reel/Frame 027064/0289 →
Continuity (3)
Continuation 12266490 · Nov 6, 2008
Provisional Application 60986377 · Nov 8, 2007
Related Publication 20110320558A1 · Dec 29, 2011