IP Library Granted Patent US 8,850,127
Granted Patent B2
US 8,850,127 · App. 14/227,398 · Granted Sep 30, 2014

Managing concurrent accesses to a cache

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 8,850,127
App. No.
14/227,398
Granted
Sep 30, 2014
Kind
B2
Abstract

Various embodiments of the present invention allow concurrent accesses to a cache. A request to update an object stored in a cache is received. A first data structure comprising a new value for the object is created in response to receiving the request. A cache pointer is atomically modified to point to the first data structure. A second data structure comprising an old value for the cached object is maintained until a process, which holds a pointer to the old value of the cached object, at least one of one of ends and indicates that the old value is no longer needed.

Claims (39)

1. A method for caching information in a multi-process environment, the method comprising:

storing a set of data within a shared memory;

managing a writer process that reads and updates the set of data; and

managing a plurality of reader processes that read at least part of the set of data directly from the shared memory and send a set of update information to the writer process, and in response thereto the writer process updating the set of data stored in the shared memory based on the set of update information.

2. The method of claim 1 , further comprising:

managing, by a memory allocator, memory space within the shared memory associated with the set of data that has been stored.

3. The method of claim 1 , wherein the storing further comprising:

storing the set of data within a hash table in the shared memory.

4. The method of claim 1 , further comprising:

coordinating access to the stored set of data using at least one lock.

5. The method of claim 4 , wherein the at least one lock is implemented using at least one semaphore.

6. The method of claim 1 , wherein the shared memory comprises at least one shared segment.

7. The method of claim 1 , wherein at least part of the set of data is accessible by multiple processes running on a node comprising the shared memory.

8. A system for caching information in a multi-process environment, the system comprising:

a processor;

a shared memory communicatively coupled to the processor, the shared memory storing a set of data;

a writer process communicatively coupled to the shared memory, wherein the writer process reads and updates the set of data;

a plurality of reader processes communicatively coupled to the shared memory, wherein each reader process in the plurality of reader processes reads at least part of the set of data directly from the shared memory and sends a set of update information to the writer process, and in response thereto the writer process updates the set of data stored in the shared memory based on each set of update information; and

a memory allocator communicatively coupled to the shared memory, wherein the memory allocator manages memory space within the shared memory for the set of data.

9. The system of claim 8 , further comprising:

a hash table that stores the set of data in the shared memory.

10. The system of claim 8 , further comprising at least one lock.

11. The system of claim 8 , wherein the at least one lock is implemented using at least semaphore.

12. The system of claim 8 , wherein the shared memory comprises at least one shared segment.

13. The system of claim 8 , wherein at least part of the data is accessible by multiple processes running on a node comprising the shared memory.

14. A computer program product caching information in a multi-process environment, the computer program product comprising:

a non-transitory storage medium readable by a processing circuit and storing instructions for execution by the processing circuit for performing a method comprising:

storing a set of data within a shared memory;

managing a writer process that reads and updates the set of data; and

managing a plurality of reader processes that read at least part of the set of data directly from the shared memory and send a set of update information to the writer process, and in response thereto the writer process updating the set of data stored in the shared memory based on the set of update information.

15. The computer program product of claim 14 , wherein the method further comprises:

managing, by a memory allocator, memory space within the shared memory associated with the set of data that has been stored.

16. The computer program product of claim 14 , the storing further comprising:

storing the set of data within a hash table in the shared memory.

17. The computer program product of claim 14 , wherein the method further comprises:

coordinating access to the stored set of data using at least one lock.

18. The computer program product of claim 17 , wherein the at least one lock is implemented using at least one semaphore.

19. The computer program product of claim 14 , wherein at least part of the set of data is accessible by multiple processes running on a node comprising the shared memory.

20. The computer program product of claim 14 , wherein the shared memory comprises at least one shared segment.

Assignments (9)
RELEASE OF SECURITY INTEREST Recorded May 12, 2021
From: WILMINGTON TRUST, NATIONAL ASSOCIATION
To: GLOBALFOUNDRIES U.S. INC.
Reel/Frame 056987/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 29, 2021
From: GLOBALFOUNDRIES US INC.
To: MEDIATEK INC.
Reel/Frame 055173/0781 →
RELEASE OF SECURITY INTEREST Recorded Nov 20, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION
To: GLOBALFOUNDRIES INC.
Reel/Frame 054636/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 2, 2020
From: GLOBALFOUNDRIES INC.
To: GLOBALFOUNDRIES U.S. INC.
Reel/Frame 054633/0001 →
SECURITY AGREEMENT Recorded Nov 29, 2018
From: GLOBALFOUNDRIES INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 049490/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 5, 2015
From: GLOBALFOUNDRIES U.S. 2 LLC; GLOBALFOUNDRIES U.S. INC.
To: GLOBALFOUNDRIES INC.
Reel/Frame 036779/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 3, 2015
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: GLOBALFOUNDRIES U.S. 2 LLC
Reel/Frame 036550/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE THE NAME OF ROBERT O. DRYFOOS PREVIOUSLY RECORDED ON REEL 032542 FRAME 0527. ASSIGNOR(S) HEREBY CONFIRMS THE ORIGINALLY EXECUTED ASSIGNMENT. Recorded Mar 31, 2014
From: DANTZIG, PAUL M.; DRYFOOS, ROBERT O.; DURI, SASTRY S.; IYENGAR, ARUN
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 032640/0121 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 27, 2014
From: DANTZIG, PAUL M.; ROBERT, ROBERT O.; DURI, SASTRY S.; IYENGAR, ARUN
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 032542/0527 →