IP Library Granted Patent US 8,443,150
Granted Patent B1
US 8,443,150 · App. 12/889,732 · Granted May 14, 2013

Efficient reloading of data into cache resource

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,443,150
App. No.
12/889,732
Granted
May 14, 2013
Kind
B1
Abstract

A storage proxy includes a cache resource. A processor is configured to receive read and write requests sent from an initiator to a target over a first proxy path. The processor invalidates the cache lines when the read and write requests are redirected over a second direct path between the initiator and the target or when some other event indicates the data in the cache lines may no longer be consistent with corresponding data in the target. The processor identifies addresses for at least some of the cache lines that were previously valid and reloads the data for the identified addresses from the target back into some the cache lines when the read and write requests are redirected back over the first proxy path or when consistency can resumed between the data in the cache lines and corresponding data in the target.

Claims (60)

1. An apparatus, comprising:

cache lines configured to store copies of data from a storage target; and

logic circuitry configured to invalidate the cache lines when the copies of the data in the cache resource may be inconsistent with the data in the storage target, the logic circuit further configured to identify addresses for at least some cache lines that were previously valid and reload copies of the data at the identified addresses from the storage target into some of the cache lines.

2. The apparatus of claim 1 wherein the logic circuitry is configured to invalidate the cache lines when storage access requests can no longer be monitored and reload copies of data from the storage target into the cache lines when the storage access requests can start being monitored.

3. The apparatus of claim 1 wherein the cache lines include read count values identifying a number of times the cache lines were read over a predetermined time period and last timestamp values identifying a last time and the cache lines were read.

4. The apparatus of claim 3 wherein the logic circuitry is configured to identify the previously valid cache lines according to the read count values and last timestamp values.

5. The apparatus of claim 1 wherein the logic circuitry is configured to derive an address range that includes the addresses for multiple previously valid cache lines and upload the data located at the address range from the storage target into the cache lines.

6. The apparatus of claim 5 wherein the logic circuitry is configured to upload the data from the storage target to the cache lines when the address range reaches a threshold value.

7. The apparatus according 1 wherein the logic circuitry is configured to:

identify a first address associated with a first previously valid cache line;

identify an address range that includes the first address;

identify a second address associated with a second previously valid cache line;

extend the address range to include the second address when a gap between the first address and the second address range is under a threshold; and

extend the address range to only include the second address when a gap between the first address and the second address range is over a threshold.

8. The apparatus of claim 1 further comprising a cluster map identifying a cluster address range for a contiguous set of the cache lines, wherein the logic circuitry is configured to reload data at the cluster address range in the storage target into the cache lines.

9. The apparatus of claim 8 wherein the cluster map includes:

a read count value identifying a number of times the contiguous set of cache lines was read; and

a last timestamp value identifying a last time the contiguous set of cache lines was read.

10. The apparatus of claim 9 wherein the logic circuitry is configured to identify the cluster address range according to the read count value and the last timestamp value.

11. A computer readable medium containing instructions configured to be executed by a computer system, the instructions when executed by the computer system comprising:

loading data from a storage disk into cache lines in a cache resource;

invalidating the cache lines when a condition is detected where consistency might not be maintained between the data in the cache resource and corresponding data in the storage disk;

identifying addresses for previously valid cache lines; and

reloading data corresponding with the addresses from the storage disk into some of the cache lines when consistency can be maintained between the data in the cache resource and the corresponding data in the storage disk.

12. The computer readable medium according to claim 11 further comprising:

tracking read count values for the cache lines;

identifying last timestamp values for the cache lines; and

identifying the previously valid cache lines according to the read count values and last timestamp values.

13. The computer readable medium according to claim 11 further comprising:

identifying a first address associated with a first one of the previously valid cache lines;

identifying a second address associated with a second one of the previously valid cache lines;

identifying an address range that includes the first address and the second address; and

uploading data within the address range in the storage disk into the cache lines.

14. The computer readable medium according to claim 13 further comprising uploading the data from the storage disk into the cache lines when the address range reaches a size limit.

15. The computer readable medium according to claim 13 further comprising:

identifying an address gap between the first address and the second address;

modifying the address range to begin at the second address and not include the first address when the address gap is above a threshold.

16. The computer readable medium according to claim 11 further comprising:

identifying a cluster of cache lines;

identify an address range that extends over addresses associated with the cluster of cache lines; and

uploading data within the address range in the storage disk into the cache lines.

17. The computer readable medium according to claim 16 further comprising uploading the data within the address range when a read count value for the cluster of cache lines is above a count threshold and a last timestamp value for the cluster of cache lines is less than a time threshold.

18. The computer readable medium according to claim 11 further comprising:

identifying a first cluster of cache lines;

identifying a first address range for the first cluster of cache lines;

identifying a second cluster of cache lines;

identifying a second address range for the second cluster of cache lines;

identifying a third address range that extends over the first address range and the second address range; and

uploading data for the third storage range in the storage disk into the cache lines.

19. A storage proxy, comprising:

a cache resource including cache lines; and

a processor configured to receive storage access requests sent over a first proxy path from an initiator to a target and invalidate the cache lines when the storage access requests are redirected over a second direct path between the initiator and the target, the processor further configured to identify addresses for at least some of the cache lines that were previously valid and reload the data from the target at the identified addresses into some of the cache lines.

20. The storage proxy of claim 19 wherein the processor is configured to identify the cache lines that were previously valid according to a number of times the cache lines were read.

21. The storage proxy according to claim 20 wherein the processor is configured to identify the cache lines that were previously valid according to when the cache lines were last read.

22. The storage proxy according to claim 20 wherein the processor is configured to:

identify a first address for a first one of the cache lines that was previously valid;

identify an address range that includes the first address;

identify a second address for a second one of the cache lines that was previously valid;

extend the address range to extend from the first address to the second address; and

upload data located at the address range in the target to the cache lines when the address range reaches a threshold.

Assignments (13)
CORRECTIVE ASSIGNMENT TO REMOVE US PATENT NO. 9013874 PREVIOUSLY RECORDED UNDER REEL AND FRAME 064272/0249. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Sep 17, 2024
From: VSIP HOLDINGS LLC (F/K/A VIOLIN SYSTEMS LLC)
To: INNOVATIONS IN MEMORY LLC
Reel/Frame 068998/0780 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 13, 2023
From: VSIP HOLDINGS LLC (F/K/A VIOLIN SYSTEMS LLC)
To: INNOVATIONS IN MEMORY LLC
Reel/Frame 064272/0249 →
RELEASE OF SECURITY INTEREST Recorded Jun 16, 2021
From: SILICON VALLEY BANK
To: VSIP HOLDINGS LLC (F/K/A VIOLIN SYSTEMS LLC (F/K/A VIOLIN MEMORY, INC.))
Reel/Frame 056600/0186 →
CHANGE OF NAME Recorded May 25, 2021
From: VIOLIN SYSTEMS LLC
To: VSIP HOLDINGS LLC
Reel/Frame 056366/0849 →
RELEASE OF SECURITY INTEREST Recorded Feb 22, 2018
From: SILICON VALLEY BANK
To: VIOLIN SYSTEMS LLC
Reel/Frame 045005/0267 →
CHANGE OF NAME Recorded Dec 19, 2017
From: VIOLIN MEMORY, INC.
To: VIOLIN SYSTEMS LLC
Reel/Frame 044908/0680 →
SECURITY INTEREST Recorded Aug 27, 2014
From: VIOLIN MEMORY, INC.
To: SILICON VALLEY BANK
Reel/Frame 033645/0834 →
RELEASE OF SECURITY INTEREST Recorded Aug 26, 2014
From: COMERICA BANK
To: VIOLIN MEMORY, INC.
Reel/Frame 033617/0360 →
RELEASE OF SECURITY INTEREST Recorded Aug 22, 2014
From: TRIPLEPOINT CAPITAL LLC
To: VIOLIN MEMORY, INC.
Reel/Frame 033591/0759 →
SECURITY AGREEMENT Recorded Jul 19, 2013
From: VIOLIN MEMORY, INC.
To: COMERICA BANK, A TEXAS BANKING ASSOCIATION
Reel/Frame 030833/0440 →
SECURITY AGREEMENT Recorded May 16, 2013
From: VIOLIN MEMORY, INC.
To: TRIPLEPOINT CAPITAL LLC
Reel/Frame 030426/0821 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 3, 2013
From: GRIDIRON SYSTEMS, INC.
To: VIOLIN MEMORY, INC.
Reel/Frame 029561/0074 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 24, 2010
From: DE LA IGLESIA, ERIK
To: GRIDIRON SYSTEMS, INC.
Reel/Frame 025038/0339 →