IP Library Granted Patent US 8,756,379
Granted Patent B2
US 8,756,379 · App. 13/925,356 · Granted Jun 17, 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,756,379
App. No.
13/925,356
Granted
Jun 17, 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 (29)

1. An information processing system for allowing concurrent accesses to a cache, the information processing system comprising:

a memory;

a processor communicatively coupled to the memory, wherein the processor is configured to perform a method comprising:

receiving a request to update an object stored in the cache;

creating, in response to receiving the request, a first data structure comprising a new value for the object;

atomically modifying a cache pointer to point to the first data structure; and

maintaining a second data structure comprising an old value for the object until a process, which holds a pointer to the old value of the object, at least one of ends and indicates that the old value is no longer needed.

2. The information processing system of claim 1 , wherein the method further comprises:

receiving a request to add a new object to the cache;

creating a third data structure comprising the new object; and

atomically modifying a cache pointer to point to the third data structure.

3. The information processing system of claim 1 , wherein the method further comprises:

receiving a request to delete an existing object from the cache;

atomically modifying a pointer associated with the existing object, the atomically modifying the pointer associated with the existing object preventing the existing object from being accessible by searching the cache; and

maintaining a data structure comprising a value for the existing object until a process holding a pointer to the existing object one of ends and indicates that the value is no longer needed.

4. A computer program product for allowing concurrent accesses to a cache, 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:

receiving a request to update an object stored in the cache;

creating, in response to receiving the request, a first data structure comprising a new value for the object;

atomically modifying a cache pointer to point to the first data structure; and

maintaining a second data structure comprising an old value for the object until a process, which holds a pointer to the old value of the object, at least one of ends and indicates that the old value is no longer needed.

5. The computer program product of claim 4 , wherein the method further comprises:

receiving a request to add a new object to the cache;

creating a third data structure comprising the new object; and

atomically modifying a cache pointer to point to the third data structure.

6. The computer program product of claim 4 , wherein the method further comprises:

receiving a request to delete an existing object from the cache;

atomically modifying a pointer associated with the existing object, the atomically modifying the pointer associated with the existing object preventing the existing object from being accessible by searching the cache; and

maintaining a data structure comprising a value for the existing object until a process holding a pointer to the existing object one of ends and indicates that the value is no longer needed.

Assignments (8)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 17, 2014
From: DANTZIG, PAUL M; DRYFOOS, ROBERT O; DURI, SASTRY S; IYENGAR, ARYN
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 031991/0312 →