IP Library › Granted Patent US 9,971,692
Granted Patent B2
US 9,971,692 · App. 14/943,923 · Granted May 15, 2018

Supporting concurrent operations at fine granularity in a caching framework

Inventors: Aayush Gupta (San Jose, CA); James L. Hafner (Pacific Grove, CA); Mohit Saxena (San Jose, CA)
Assignee: International Business Machines Corporation
G06F12/0855G06F3/0659G06F2212/621
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,971,692
App. No.
14/943,923
Granted
May 15, 2018
Kind
B2
Abstract

In one embodiment, a system includes a cache storage device and a processor and logic integrated with and/or executable by the processor. The logic is configured to receive a plurality of access requests for data in the cache storage device, each request being directed to data in a common cache block descriptor (CBD). The CBD stores metadata corresponding to a storage location of the data in the cache storage device. The logic is also configured to update a request queue to reflect each access request from the plurality of access requests in an order in which individual access requests were received. Moreover, the logic is configured to delay at least some overlapping access requests.

Claims (34)

1. A system, comprising:

a cache storage device; and

a processor and logic integrated with and/or executable by the processor, the logic being configured to:

receive a plurality of access requests for data in the cache storage device, each request being directed to data in a common cache block descriptor (CBD), the CBD storing metadata corresponding to a storage location of the data in the cache storage device;

update a request queue to reflect each access request from the plurality of access requests in an order in which individual access requests were received;

create a second request queue in response to receiving an access request directed to a second CBD; and

delay at least some overlapping access requests.

2. The system as recited in claim 1 , wherein the logic is further configured to process individual overlapping access requests serially in an order in which they were entered in the request queue.

3. The system as recited in claim 1 , wherein the logic is further configured to process non-overlapping access requests from the request queue concurrently without delay.

4. The system as recited in claim 3 , wherein a read request from the plurality of access requests returns data from a write request entered into the request queue previous to the read request.

5. The system as recited in claim 1 , wherein the request queue comprises each received access request and a committed/uncommitted status of the common CBD in relation to the access request, wherein the committed status indicates that the common CBD has been updated to reflect changes resulting from processing a corresponding access request, and wherein the uncommitted status indicates that the common CBD has not been updated to reflect changes resulting from processing a corresponding access request.

6. The system as recited in claim 1 , wherein the logic configured to delay the at least some overlapping access requests is further configured to only delay write requests and not delay read requests, and wherein the logic is further configured to process the read requests concurrently with the write requests.

7. The system as recited in claim 1 , wherein a delay time for a subsequently received access request is limited to a time to process overlapping access requests in the request queue ahead of the subsequently received access requests.

8. The system as recited in claim 1 , wherein an amount of time to delay the at least some overlapping access requests is bounded, and wherein the logic configured to delay the at least some overlapping access requests is further configured to periodically determine whether to proceed with processing any of the at least some overlapping access requests.

9. A computer-implemented method, comprising:

receiving a plurality of access requests for data in a cache storage device, each request being directed to data in a common cache block descriptor (CBD), the CBD storing metadata corresponding to a storage location of the data in the cache storage device;

updating a request queue to reflect each access request from the plurality of access requests in an order in which individual access requests were received;

creating a second request queue in response to receiving an access request directed to a second CBD; and

delaying at least some overlapping access requests.

10. The method as recited in claim 9 , further comprising processing individual overlapping access requests serially in an order in which they were entered in the request queue.

11. The method as recited in claim 9 , further comprising processing non-overlapping access requests from the request queue concurrently without delay.

12. The method as recited in claim 11 , wherein a read request from the plurality of access requests returns data from a write request entered into the request queue previous to the read request.

13. The method as recited in claim 9 , wherein the request queue comprises each received access request and a committed/uncommitted status of the common CBD in relation to the access request, wherein the committed status indicates that the common CBD has been updated to reflect changes resulting from processing a corresponding access request, and wherein the uncommitted status indicates that the common CBD has not been updated to reflect changes resulting from processing a corresponding access request.

14. The method as recited in claim 9 , wherein the delaying the at least some overlapping access requests further comprising only delaying write requests and not delaying read requests, and further comprising processing the read requests concurrently with the write requests.

15. The method as recited in claim 9 , wherein a delay time for a subsequently received access request is limited to a time to process overlapping access requests in the request queue ahead of the subsequently received access requests.

16. The method as recited in claim 9 , wherein an amount of time for delaying the at least some overlapping access requests is bounded, and wherein the delaying the at least some overlapping access requests further comprises periodically determining whether to proceed with processing any of the at least some overlapping access requests.

17. A computer program product, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, wherein the computer readable storage medium is not a transitory signal per se, the embodied program instructions readable/executable by a controller to cause the controller to:

receive, by the controller, a plurality of access requests for data in a cache storage device, each request being directed to data in a common cache block descriptor (CBD), the CBD storing metadata corresponding to a storage location of the data in the cache storage device;

update, by the controller, a request queue to reflect each access request from the plurality of access requests in an order in which individual access requests were received;

create, by the controller, a second request queue in response to receiving an access request directed to a second CBD; and

delay, by the controller, at least some overlapping access requests.

18. The computer program product as recited in claim 17 , wherein the embodied program instructions are further readable/executable by the controller to process individual overlapping access requests serially in an order in which they were entered in the request queue.

19. The computer program product as recited in claim 17 , wherein the embodied program instructions are further readable/executable by the controller to process non-overlapping access requests from the request queue concurrently without delay, wherein a read request from the plurality of access requests returns data from a write request entered into the request queue previous to the read request.

20. The computer program product as recited in claim 17 , wherein the request queue comprises each received access request and a committed/uncommitted status of the common CBD in relation to the access request, wherein the committed status indicates that the common CBD has been updated to reflect changes resulting from processing a corresponding access request, wherein the uncommitted status indicates that the common CBD has not been updated to reflect changes resulting from processing a corresponding access request, and wherein a delay time for any subsequently received access request is limited to a time to process overlapping access requests in the request queue ahead of the subsequently received access requests.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 22, 2016
From: HAFNER, JAMES L.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 037791/0422 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 17, 2015
From: GUPTA, AAYUSH; SAXENA, MOHIT
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 037064/0744 →
Continuity (1)
Related Publication 20170139832A1 · May 18, 2017