IP Library Granted Patent US 9,971,513
Granted Patent B2
US 9,971,513 · App. 13/976,271 · Granted May 15, 2018

System and method for implementing SSD-based I/O caches

Inventors: Angelos Bilas (Herkalion, GR); Michail D. Flouris (Heraklion, GR); Yannis Klonatos (Athens, GR); Thanos Makatos (Larissa, GR); Manolis Marazakis (Heraklion, GR)
Assignee: INTEL CORPORATION
G06F3/061G06F3/064G06F3/0655G06F3/0679G06F12/0871G06F12/0888G06F12/123G06F12/126G06F12/0864G06F12/0868G06F2206/1014G06F2212/1016G06F2212/1048G06F2212/222G06F2212/281G06F2212/303G06F2212/466
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,513
App. No.
13/976,271
Granted
May 15, 2018
Kind
B2
Abstract

A method for caching a data block stored on a first storage device and onto a second storage device including determining whether a data block being requested contains a first type of data, upon a condition in which the data block contains the first type of data, writing the data block to the second storage device and upon a condition in which the data block does not contain the first type of data, determining whether a correspondingly mapped block on the second storage device contains the first type of data, and only writing the data block to the second storage device upon a condition in which the correspondingly mapped block does not contain the first type of data.

Claims (51)

1. A method for carrying out a cache write operation of data blocks stored on a first storage device and cached onto a second storage device, the method comprising:

mapping data blocks stored on a first storage device onto data blocks stored on a second storage device;

intercepting a request for a cache write operation to write a data block stored on the first storage device to the second storage device;

upon determining that the data block contains filesystem metadata, writing the data block to the second storage device;

upon determining that the data block does not contain filesystem metadata:

aborting the cache write operation upon determining that the-correspondingly mapped data block contains filesystem metadata; and

upon further determining that the correspondingly mapped data block does not contain filesystem metadata, performing any one of:

aborting the cache write operation upon determining that the correspondingly mapped data block contains data that is more frequently accessed than data contained in the data block, and

completing the cache write operation upon determining that the correspondingly mapped data block contains data that is less frequently accessed than data contained in the data block.

2. A method according to claim 1 , wherein the first storage device is a hard disk drive.

3. A method according to claim 2 , wherein the second storage device is a solid state drive.

4. A method according to claim 1 , wherein intercepting is carried out in an input/output path between the first storage device and a filesystem accessing the first storage device.

5. A method according to claim 4 , wherein intercepting is carried out by an admission control module implemented as a virtual block layer between the filesystem and the first storage device.

6. A method for caching a data block stored on a first storage device to a second storage device; the method comprising:

mapping blocks stored on a first storage device onto blocks of a second storage device;

intercepting a request for a cache write operation to write a data block stored on the first storage device to the second storage device;

upon determining that the data block contains a first type of data, completing the cache write operation; and

upon determining that the data block does not contain the first type of data performing any one of:

aborting the cache write operation upon determining that the correspondingly mapped block contains the first type of data, and

completing the cache write operation upon determining that the correspondingly mapped block does not contain the first type of data.

7. A method according to claim 6 , further comprising:

upon determining that the correspondingly mapped block contains a second type of data, performing any one of:

aborting the cache write operation upon determining that the correspondingly mapped block contains the second type of data, and

completing the cache write operation upon determining that the correspondingly mapped block does not contain the second type of data.

8. A method according to claim 6 , wherein the first type of data is filesystem metadata.

9. A method according to claim 7 , wherein the second type of data is data that is more frequently accessed than data on the data block.

10. A method according to claim 6 , wherein the first storage device is a hard disk drive.

11. A method according to claim 7 , wherein the second storage device is a solid state drive.

12. A method according to claim 6 , wherein intercepting is carried out in an input/output path between the first storage device and a filesystem accessing the first storage device.

13. A method according to claim 12 , wherein the intercepting is carried out by an admission control module implemented as a virtual block layer between the filesystem and the first storage device.

14. A method according to claim 6 , wherein determining comprises reading stored values indicative of the first type of data from the filesystem or from a repository of stored values.

15. A non-transitory computer readable medium having computer readable instructions thereon to carry out the method of claim 6 .

16. A computer system comprising

a filesystem in communication with a first storage device via an input/output path;

an admission control module in the input/output path;

a second storage device in communication with the admission control module,

wherein the admission control module includes instructions for:

mapping blocks stored on a first storage device onto blocks of the second storage device;

intercepting a request for a cache write operation to write a data block stored on the first storage device to the second storage device;

upon determining that the data block contains a first type of data, completing the cache write operation; and

upon determining that the data block does not contain the first type of data performing any one of:

aborting the cache write operation upon determining that the correspondingly mapped block contains the first type of data, and

completing the cache write operation upon determining that the correspondingly mapped block does not contain the first type of data.

17. A computer system according to claim 16 , wherein the admission control module further includes instructions for:

upon determining that the correspondingly mapped block contains a second type of data, performing any one of:

aborting the cache write operation upon determining that the correspondingly mapped block contains the second type of data, and

completing the cache write operation upon determining that the correspondingly mapped block does not contain the second type of data.

18. A computer system according to claim 16 , wherein the first type of data is filesystem metadata.

19. A computer system according to claim 14 , wherein the second type of data is data that is more frequently accessed than data on the data block.

20. A computer system according to claim 16 , wherein the first storage device is a hard disk drive.

21. A computer system according to claim 16 , wherein the second storage device is a solid state drive.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 17, 2025
From: INTEL CORPORATION
To: SK HYNIX NAND PRODUCT SOLUTIONS CORP. (DBA SOLIDIGM)
Reel/Frame 072915/0599 →
Continuity (1)
Related Publication 20150193144A1 · Jul 9, 2015