IP Library Granted Patent US 7,555,606
Granted Patent B2
US 7,555,606 · App. 11/825,107 · Granted Jun 30, 2009

System and method for caching results

Assignee: JP Morgan Chase & Co.
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 7,555,606
App. No.
11/825,107
Granted
Jun 30, 2009
Kind
B2
Abstract

In certain aspects, the invention features a system and method for caching results, including receiving a job for computation by a distributed computing system having one or more node computing devices in communication with a cache, processing, on one of the node computing devices, the job to create an intermediate result for storage in the cache, wherein the intermediate result includes data wherein a time required to obtain the data by computation or retrieval from a data storage external to the distributed computer system is at least marginally greater than that of retrieving the intermediate result from the cache. In accordance with such aspects, the system and method further includes storing the intermediate result in the cache, and accessing the cache by presenting a lookup function to the cache, wherein the lookup function includes a key and a compute function configured to produce the intermediate result.

Claims (37)

1. A method, comprising:

receiving a job for computation by a distributed computing system comprising one or more node computing devices in communication with a cache;

processing, on one of said node computing devices, said job to create an intermediate result for storage in said cache, wherein said intermediate result comprises data wherein a time required to obtain said data by computation or retrieval from a data storage external to said distributed computer system is at least marginally greater than that of retrieving said intermediate result from said cache;

storing said intermediate result in said cache; and

accessing said cache by presenting a lookup function to said cache, wherein said lookup function comprises a key and a compute function configured to produce said intermediate result, wherein said accessing further comprises:

determining whether said key is found in said cache;

responsive to determining that said key is not found, computing said compute function to regenerate said intermediate result; and

preventing a second node computing device from computing said compute function during said computing said compute function to regenerate said intermediate result.

2. The method of claim 1 , wherein said storing comprises assigning a key/result pair to said intermediate result.

3. The method of claim 1 , wherein said cache comprises a storage area network.

4. The method of claim 1 , wherein said cache comprises a plurality of geographically separate devices.

5. The method of claim 1 , wherein said cache comprises a database running on a redundant array of independent disks.

6. The method of claim 1 , further comprising:

reassigning said node computing device processing said job;

scheduling computation of said job on another node computing device; and

accessing said cache to retrieve said intermediate result for use in computation of said job on said another node computing device.

7. The method of claim 1 , wherein said compute function is computed on at least one of said node computing devices other than said node computing device processing said job.

8. The method of claim 1 , wherein said receiving comprises receiving said job from an application running on a local computing device.

9. A distributed computing system, comprising:

one or more node computing devices in communication with a cache;

means for receiving a job for computation by said distributed computing system;

means for processing, on one of said node computing devices, said job to create an intermediate result for storage in said cache, wherein said intermediate result comprises data wherein a time required to obtain said data by computation or retrieval from a data storage external to said distributed computer system is at least marginally greater than that of retrieving said intermediate result from said cache;

means for storing said intermediate result in said cache; and

means for accessing said cache by presenting a lookup function to said cache, wherein said lookup function comprises a key and a compute function configured to produce said intermediate result, wherein said means for accessing further comprises:

means for determining whether said key is found in said cache;

means for computing said compute function to regenerate said intermediate result in response to a determination that said key is not found; and

means for preventing a second node computing device from computing said compute function during said computing said compute function to regenerate said intermediate result.

10. The distributed computing system of claim 9 , wherein said means for storing comprises means for assigning a key/result pair to said intermediate result.

11. The distributed computing system of claim 9 , wherein said cache comprises a storage area network.

12. The distributed computing system of claim 9 , wherein cache comprises a plurality of geographically separate devices.

13. The distributed computing system of claim 9 , wherein said cache comprises a database running on a redundant array of independent disks.

14. The distributed computing system of claim 9 , further comprising:

means for reassigning said node computing device processing said job;

means for scheduling computation of said job on another node computing device; and

means for accessing said cache to retrieve said intermediate result for use in computation of said job on said another node computing device.

15. The distributed computing system of claim 9 , wherein said compute function is computed on at least one of said node computing devices other than said node computing device processing said job.

16. The distributed computing system of claim 9 , further comprising means for receiving said job from an application running on a local computing device.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 14, 2012
From: NEIMAN, STEVEN; SULZHYK, ROMAND
To: JP MORGAN CHASE & CO.
Reel/Frame 029297/0626 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 14, 2012
From: JPMORGAN CHASE & CO.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 029297/0746 →
Continuity (3)
Continuation 1104071500 · Jan 21, 2005
Division 1017749700 · Jun 21, 2002
Related Publication 20080034160A1 · Feb 7, 2008