IP Library Granted Patent US 9,037,792
Granted Patent B1
US 9,037,792 · App. 13/911,540 · Granted May 19, 2015

Systems and methods for providing caching for applications with solid-state storage devices

Inventors: Swapnil Ingle (Amravati, IN); Shirish Vijayvargiya (Wakad, IN); Sanjay Kumar (Wakad, IN); Rishikesh Jethwani (Maharashtra, IN); Niranjan Pendharkar (NCL/Pashan, IN); Anindya Banerjee (Wakad, IN)
Assignee: Symantec Corporation
G06F12/0866G06F12/0246G06F2212/2022
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,037,792
App. No.
13/911,540
Granted
May 19, 2015
Kind
B1
Abstract

A computer-implemented method for providing caching for applications with solid-state storage devices may include (1) identifying a plurality of solid-state drives that are available for caching input/output operations, (2) detecting at least one distinguishing hardware property of at least one solid-state drive within the plurality of solid-state drives, (3) determining at least one attribute of an application, and (4) selecting the solid-state drive for caching at least one input/output operation of the application based at least in part on the attribute of the application in combination with the distinguishing hardware property of the solid-state drive. Various other methods, systems, and computer-readable media are also disclosed.

Claims (53)

1. A computer-implemented method for providing caching for applications with solid-state storage devices, at least a portion of the method being performed by a computing device comprising at least one processor, the method comprising:

identifying a plurality of solid-state drives that are available for caching input/output operations;

detecting at least one distinguishing hardware property of at least one solid-state drive within the plurality of solid-state drives;

determining at least one attribute of an application;

selecting the solid-state drive for caching at least one input/output operation of the application based at least in part on the attribute of the application in combination with the distinguishing hardware property of the solid-state drive.

2. The computer-implemented method of claim 1 , wherein determining the attribute of the application comprises determining an input/output pattern of input/output operations performed by the application.

3. The computer-implemented method of claim 1 , wherein determining the attribute of the application comprises determining at least one of:

a priority level for input/output operations performed by the application;

a service-level agreement covering the application.

4. The computer-implemented method of claim 1 , wherein detecting the distinguishing hardware property of the solid-state drive comprises detecting a data transfer rate of the solid-state drive that differs from a different data transfer rate of an alternative solid-state drive within the plurality of solid-state drives.

5. The computer-implemented method of claim 1 , wherein detecting the distinguishing hardware property of the solid-state drive comprises detecting a write endurance of the solid-state drive that differs from an alternative write endurance of an alternative solid-state drive within the plurality of solid-state drives.

6. The computer-implemented method of claim 1 , wherein:

detecting the distinguishing hardware property of the solid-state drive comprises detecting that the solid-state drive comprises a single-level-cell solid-state drive;

determining the attribute of the application comprises determining that the application is write-intensive according to a predefined write-intensity metric;

selecting the solid-state drive for caching the input/output operation of the application is based at least in part on the solid-state drive comprising a single-level-cell solid-state drive in combination with determining that the application is write-intensive according to the predefined write-intensity metric.

7. The computer-implemented method of claim 1 , wherein:

detecting the distinguishing hardware property of the solid-state drive comprises detecting that the solid-state drive comprises a multi-level-cell solid-state drive;

determining the attribute of the application comprises determining that the application is read-intensive according to a predefined read-intensity metric;

selecting the solid-state drive for caching the input/output operation of the application is based at least in part on the solid-state drive comprising a multi-level-cell solid-state drive in combination with determining that the application is read-intensive according to the predefined read-intensity metric.

8. The computer-implemented method of claim 1 , further comprising selecting an alternative solid-state drive within the plurality of solid-state drives for caching at least one input/output operation of an additional application based at least in part on an attribute of the alternative application in combination with a distinguishing hardware property of the alternative solid-state drive.

9. The computer-implemented method of claim 1 , further comprising:

determining that the attribute of the application has changed;

selecting an alternative solid-state drive within the plurality of solid-state drives for caching at least one additional input/output operation of the application based at least in part on determining that the attribute of the application has changed in combination with a distinguishing hardware property of the alternative solid-state drive.

10. The computer-implemented method of claim 1 , further comprising caching the input/output operation of the application on the solid-state drive.

11. A system for providing caching for applications with solid-state storage devices, the system comprising:

an identification module that identifies a plurality of solid-state drives that are available for caching input/output operations;

a detection module that detects at least one distinguishing hardware property of at least one solid-state drive within the plurality of solid-state drives;

a determination module that determines at least one attribute of an application;

a selection module that selects the solid-state drive for caching at least one input/output operation of the application based at least in part on the attribute of the application in combination with the distinguishing hardware property of the solid-state drive;

at least one processor configured to execute the identification module, the detection module, the determination module, and the selection module.

12. The system of claim 11 , wherein the determination module determines the attribute of the application by determining an input/output pattern of input/output operations performed by the application.

13. The system of claim 11 , wherein the determination module determines the attribute of the application by determining at least one of:

a priority level for input/output operations performed by the application;

a service-level agreement covering the application.

14. The system of claim 11 , wherein the detection module detects the distinguishing hardware property of the solid-state drive by detecting a data transfer rate of the solid-state drive that differs from a different data transfer rate of an alternative solid-state drive within the plurality of solid-state drives.

15. The system of claim 11 , wherein the detection module detects the distinguishing hardware property of the solid-state drive by detecting a write endurance of the solid-state drive that differs from an alternative write endurance of an alternative solid-state drive within the plurality of solid-state drives.

16. The system of claim 11 , wherein:

the detection module detects the distinguishing hardware property of the solid-state drive by detecting that the solid-state drive comprises a single-level-cell solid-state drive;

the determination module determines the attribute of the application by determining that the application is write-intensive according to a predefined write-intensity metric;

the selection module selects the solid-state drive for caching the input/output operation of the application based at least in part on the solid-state drive comprising a single-level-cell solid-state drive in combination with determining that the application is write-intensive according to the predefined write-intensity metric.

17. The system of claim 11 , wherein:

the detection module detects the distinguishing hardware property of the solid-state drive by detecting that the solid-state drive comprises a multi-level-cell solid-state drive;

the determination module determines the attribute of the application by determining that the application is read-intensive according to a predefined read-intensity metric;

the selection module selects the solid-state drive for caching the input/output operation of the application based at least in part on the solid-state drive comprising a multi-level-cell solid-state drive in combination with determining that the application is read-intensive according to the predefined read-intensity metric.

18. The system of claim 11 , the selection module selects an alternative solid-state drive within the plurality of solid-state drives for caching at least one input/output operation of an additional application based at least in part on an attribute of the alternative application in combination with a distinguishing hardware property of the alternative solid-state drive.

19. The system of claim 11 , further comprising:

the determination module determines that the attribute of the application has changed;

the selection module selects an alternative solid-state drive within the plurality of solid-state drives for caching at least one additional input/output operation of the application based at least in part on determining that the attribute of the application has changed in combination with a distinguishing hardware property of the alternative solid-state drive.

20. A non-transitory computer-readable-storage medium comprising one or more computer-readable instructions that, when executed by at least one processor of a computing device, cause the computing device to:

identify a plurality of solid-state drives that are available for caching input/output operations;

detect at least one distinguishing hardware property of at least one solid-state drive within the plurality of solid-state drives;

determine at least one attribute of an application;

select the solid-state drive for caching at least one input/output operation of the application based at least in part on the attribute of the application in combination with the distinguishing hardware property of the solid-state drive.

Assignments (8)
RELEASE OF SECURITY INTEREST Recorded Dec 16, 2024
From: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC (F/K/A VERITAS US IP HOLDINGS LLC)
Reel/Frame 069712/0090 →
ASSIGNMENT OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Nov 25, 2024
From: BANK OF AMERICA, N.A., AS ASSIGNOR
To: ACQUIOM AGENCY SERVICES LLC, AS ASSIGNEE
Reel/Frame 069440/0084 →
TERMINATION AND RELEASE OF SECURITY IN PATENTS AT R/F 037891/0726 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS US IP HOLDINGS, LLC
Reel/Frame 054535/0814 →
MERGER AND CHANGE OF NAME Recorded Apr 18, 2016
From: VERITAS US IP HOLDINGS LLC; VERITAS TECHNOLOGIES LLC
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 038455/0752 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 037891/0726 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037891/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2016
From: SYMANTEC CORPORATION
To: VERITAS US IP HOLDINGS LLC
Reel/Frame 037697/0412 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 6, 2013
From: INGLE, SWAPNIL; VIJAYVARGIYA, SHIRISH; KUMAR, SANJAY; JETHWANI, RISHIKESH; PENDHARKAR, NIRANJAN; BANERJEE, ANINDYA
To: SYMANTEC CORPORATION
Reel/Frame 030560/0425 →