IP Library Granted Patent US 9,646,012
Granted Patent B1
US 9,646,012 · App. 14/198,760 · Granted May 9, 2017

Caching temporary data in solid state storage devices

Inventors: Raghupathi Malige (San Jose, CA); Daniel Fillingham (Sunnyvale, CA); Ryan Lefevre (Sunnyvale, CA); Meher Shah (Union City, CA)
Assignee: Veritas Technologies LLC
G06F17/30082G06F17/30132G06F17/30218
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,646,012
App. No.
14/198,760
Granted
May 9, 2017
Kind
B1
Abstract

Various systems and methods for inhibiting a modified block of data from being written to an underlying persistent storage device are disclosed. A cache is maintained by a file system and the cache is implemented to temporarily cache portions of application data for an application. The application data for the application is stored on the underlying persistent storage device. Metadata is accessed if it is detected that a block of data in the cache has been modified. The metadata indicates that the block of data is not needed for the integrity of the application. In response to the metadata, the modified block of data is inhibited from being written to the underlying persistent storage device.

Claims (104)

1. A method comprising:

detecting that a plurality of blocks of data in a cache has have been modified, wherein

the cache is maintained by a file system,

the plurality of blocks belong to a plurality of files and/or a plurality of portions of a file of the plurality of files,

the cache is implemented to temporarily cache portions of application data for an application, and

the application data for the application is stored on an underlying persistent storage device;

accessing metadata, wherein

the file system comprises the metadata,

the metadata indicates that a block of data of the plurality of blocks of data is not needed for integrity of the application, and

the integrity of the application is based, at least in part, on whether the block of data is required to restore the application; and

in response to the metadata, inhibiting the block of data from being written to the underlying persistent storage device, and writing the plurality of blocks of data, other than the block of data, to the underlying persistent storage device.

2. The method of claim 1 , wherein

the metadata in the file system comprises file system metadata and cache policy metadata, and

the file system metadata permits a cache policy of a plurality of cache policies to be applied to be modified block of data by mapping of each of one or more files of the plurality of files or each of one or more portions of the file to one of the plurality of blocks of data, based on the cache policy metadata that identifies the one or more files or the one or more portions of the one or more files that are necessary for the integrity of the application.

3. The method of claim 2 , wherein

the inhibiting comprises

accessing the file system metadata and the cache policy metadata in the file system, and

applying a first cache policy of the plurality of cache policies when the block of data is modified in the cache and the cache is implemented as a write-through cache.

4. The method of claim 2 , wherein

the inhibiting comprises

accessing the file system metadata and the cache policy metadata in the file system, and

applying a second cache policy of the plurality of cache policies when the block of data is removed from the cache and the cache is implemented as a write-through cache.

5. The method of claim 1 , wherein

the cache is implemented on a solid state drive, and

the application is a database application.

6. The method of claim 1 , comprising

detecting that a second block of data in the cache has been modified;

accessing the metadata, wherein

the metadata indicates that the second block of data is needed for the integrity of the application; and

in response to the metadata, allowing the modified block of data to be written to the underlying persistent storage device as part of the plurality of modified blocks of data.

7. The method of claim 2 , wherein

the file system metadata indicates that the block of data is part of a portion of a temporary file, and

the cache policy metadata indicates that the portion of the temporary file is not needed for the integrity of the application.

8. The method of claim 7 , wherein

the metadata identifies only a header or a tail of the temporary file are needed for the integrity of the application because the block of data is only part of the header or the tail.

9. The method of claim 1 , further comprising:

as part of the accessing,

selecting a cache policy of a plurality of cache policies from the file system; and

as part of the inhibiting,

applying the cache policy to the modified block of data.

10. A computer readable storage medium comprising program instructions executable to:

detect that a plurality of blocks of data in a cache have been modified, wherein

the cache is maintained by a file system,

the plurality of blocks belong to a plurality of files and/or a plurality of portions of a file of the plurality of files,

the cache is implemented to temporarily cache portions of application data for an application, and

the application data for the application is stored on an underlying persistent storage device;

access metadata, wherein

the file system comprises the metadata,

the metadata indicates that a block of data of the plurality of blocks of data is not needed for integrity of the application, and

the integrity of the application is based, at least in part, on whether the block of data is required to restore the application; and

in response to the metadata, inhibit the block of data from being written to the underlying persistent storage device, and write the plurality of blocks of data, other than the block of data, to the underlying persistent storage device.

11. The computer readable storage medium of claim 10 , wherein

the metadata in the file system comprises file system metadata and cache policy metadata, and

the file system metadata permits a cache policy of a plurality of cache policies to be applied to be modified block of data by mapping of each of one or more files of the plurality of files or each of one or more portions of the file to one of the plurality of blocks of data, based on the cache policy metadata that identifies the one or more files or the one or more portions of the one or more files that are necessary for the integrity of the application.

12. The computer readable storage medium of claim 11 , wherein

the inhibiting comprises

accessing the file system metadata and the cache policy metadata in the file system, and

applying a first cache policy of the plurality of cache policies when the block of data is modified in the cache and the cache is implemented as a write-through cache.

13. The computer readable storage medium of claim 10 , wherein

the cache is implemented on a solid state drive, and

the application is a database application.

14. The computer readable storage medium of claim 10 , comprising

detecting that a second block of data in the cache has been modified;

accessing the metadata, wherein

the metadata indicates that the second block of data is needed for the integrity of the application; and

in response to the metadata, allowing the modified block of data to be written to the underlying persistent storage device as part of the plurality of modified blocks of data.

15. The computer readable storage medium of claim 11 , wherein

the inhibiting comprises

accessing the file system metadata and the cache policy metadata in the file system, and

applying a second cache policy of the plurality of cache policies when the block of data is removed from the cache and the cache is implemented as a write-through cache.

16. A system comprising:

one or more processors; and

a memory coupled to the one or more processors, wherein the memory stores program instructions executable by the one or more processors to:

detect that a plurality of blocks of data in a cache have been modified, wherein

the cache is maintained by a file system,

the plurality of blocks belong to a plurality of files and/or a plurality of portions of a file of the plurality of files,

the cache is implemented to temporarily cache portions of application data for an application, and

the application data for the application is stored on an underlying persistent storage device;

access metadata, wherein

the file system comprises the metadata,

the metadata indicates that a block of data of the plurality of blocks of data is not needed for integrity of the application, and

the integrity of the application is based, at least in part, on whether the block of data is required to restore the application; and

in response to the metadata, inhibit the block of data from being written to the underlying persistent storage device, and write the plurality of blocks of data, other than the block of data, to the underlying persistent storage device.

17. The system of claim 16 , wherein

the metadata in the file system comprises file system metadata and cache policy metadata, and

the file system metadata permits a cache policy of a plurality of cache policies to be applied to be modified block of data by mapping of each of one or more files of the plurality of files or each of one or more portions of the file to one of the plurality of blocks of data, based on the cache policy metadata that identifies the one or more files or the one or more portions of the one or more files that are necessary for the integrity of the application.

18. The system of claim 16 , wherein

the cache is implemented on a solid state drive, and

the application is a database application.

19. The system of claim 16 , comprising

detecting that a second block of data in the cache has been modified;

accessing the metadata, wherein

the metadata indicates that the second block of data is needed for the integrity of the application; and

in response to the metadata, allowing the modified block of data to be written to the underlying persistent storage device as part of the plurality of modified blocks of data.

20. The system of claim 16 , wherein

the inhibiting comprises

accessing the file system metadata and the cache policy metadata in the file system; and

applying to the block,

a first cache policy of the plurality of cache policies when the block of data is modified in the cache and the cache is implemented as a write-through cache, or

a second cache policy of the plurality of cache policies when the block of data is removed from the cache and the cache is implemented as a write-back cache.

21. The system of claim 16 , wherein

the file system metadata indicates that the block of data is part of a portion of a temporary file, and

the metadata cache policy indicates that the portion of the temporary file is not needed for the integrity of the application, and

the metadata identifies only a header or a tail of the temporary file are needed for the integrity of the application because the block of data is only part of the header or the tail.

Assignments (17)
CORRECTIVE ASSIGNMENT TO CORRECT THE CONVEYING PARTY DATA AND CORRECT THE PATENT NUMBERS PREVIOUSLY RECORDED AT REEL: 69548 FRAME: 468. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Feb 4, 2026
From: VERITAS TECHNOLOGIES LLC
To: ARCTERA US LLC
Reel/Frame 074876/0584 →
SECURITY INTEREST Recorded Dec 12, 2025
From: ARCTERA US LLC
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 073951/0470 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT R/F 069585/0150 Recorded Dec 1, 2025
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: ARCTERA US LLC
Reel/Frame 073833/0848 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT R/F 070530/0497 Recorded Dec 1, 2025
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: ARCTERA US LLC
Reel/Frame 073833/0730 →
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 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
PATENT SECURITY AGREEMENT Recorded Dec 10, 2024
From: ARCTERA US LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 069585/0150 →
SECURITY INTEREST Recorded Dec 10, 2024
From: ARCTERA US LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 069563/0243 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC
To: ARCTERA US LLC
Reel/Frame 069548/0468 →
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 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
MERGER Recorded Apr 18, 2016
From: VERITAS US IP HOLDINGS LLC
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 038483/0203 →
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 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 037891/0726 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2016
From: SYMANTEC CORPORATION
To: VERITAS US IP HOLDINGS LLC
Reel/Frame 037693/0158 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 4, 2014
From: MALIGE, RAGHUPATHI; FILLINGHAM, DANIEL; LEFEVRE, RYAN; SHAH, MEHER
To: SYMANTEC CORPORATION
Reel/Frame 032607/0562 →