IP Library Granted Patent US 10,896,132
Granted Patent B1
US 10,896,132 · App. 15/980,770 · Granted Jan 19, 2021

Systems and methods for prioritizing cache objects for deletion

Inventors: Jitendra Patidar (Pune, IN); Anindya Banerjee (Pune, IN)
Assignee: Veritas Technologies LLC
G06F12/0891G06F12/0895G06F2212/1044
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 10,896,132
App. No.
15/980,770
Granted
Jan 19, 2021
Kind
B1
Abstract

Provided computer-implemented methods for prioritizing cache objects for deletion may include (1) tracking, at a computing device, a respective time an externally-accessed object spends in an external cache, (2) queuing, when the externally-accessed object is purged from the external cache, the externally-accessed object in a first queue, (3) queuing, when an internally-accessed object is released, the internally-accessed object in a second queue, (4) prioritizing objects within the first queue, based on a cache-defined internal age factor and on respective times the objects spend in the external cache and respective times the objects spend in an internal cache, (5) prioritizing objects within the second queue based on respective times the objects spend in the internal cache, (6) selecting an oldest object having a longest time in any of the first queue and the second queue, and (7) deleting the oldest object. Various other methods, systems, and computer-readable media are disclosed.

Claims (57)

1. A computer-implemented method for prioritizing cache objects for deletion, at least a portion of the method being performed by a computing device comprising at least one processor, the method comprising:

tracking, at the computing device, a respective time an externally-accessed object spends in an external cache;

queuing, when the externally-accessed object is purged from the external cache, the externally-accessed object in a first queue;

setting, when the externally-accessed object is purged, a respective unhold flag;

queuing, when an internally-accessed object is released, the internally-accessed object in a second queue;

setting, when the externally-accessed object in the first queue re-accessed internally, a respective hold flag;

transferring, when the externally-accessed object in the first queue having both a respective hold flag and a respective unhold flag set is released, the externally-accessed object to a third queue;

prioritizing objects within the first queue, based on a cache-defined internal age factor and on respective times the objects in the first queue spend in the external cache and respective times the objects in the first queue spend in an internal cache;

prioritizing objects within the second queue based on respective times the objects in the second queue spend in the internal cache;

prioritizing objects within the third queue based on respective times the objects in the third queue spend in the internal cache;

selecting an oldest object having a longest time in any of the first queue, the second queue, and the third queue; and

deleting the oldest object.

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

setting the respective hold flag when the externally-accessed object is initially accessed externally; and

clearing, when the externally-accessed object is purged, the respective hold flag.

3. The computer-implemented method of claim 1 , wherein at least one of the externally-accessed object and the internally-accessed object is an inode data structure.

4. The computer-implemented method of claim 1 , wherein at least one of the internal cache and the external cache is an inode cache.

5. The computer-implemented method of claim 4 , wherein the inode cache is in a file system layer, an operating system layer, or a network file system layer.

6. The computer-implemented method of claim 1 , wherein the deleting is initiated by at least one of a system memory reaching maximum capacity and an in-core cache reaching maximum capacity.

7. A system for prioritizing cache objects for deletion, the system comprising:

a tracking module, stored in memory, that tracks a respective time an externally-accessed object spends in an external cache;

a first queuing module, stored in the memory, that queues, when the externally-accessed object is purged from the external cache, the externally-accessed object in a first queue;

a first setting module, stored in the memory, that sets, when the externally-accessed object is purged, a respective unhold flag;

a second queuing module, stored in the memory, that queues, when an internally-accessed object is released, the internally-accessed object in a second queue;

a second setting module, stored in the memory, that sets, when the externally-accessed object in the first queue re-accessed internally, a respective hold flag;

a transferring module, stored in the memory, that transfers, when the externally-accessed object in the first queue having both a respective hold flag and a respective unhold flag set is released, the externally-accessed object to a third queue;

a first prioritizing module, stored in the memory, that prioritizes objects within the first queue, based on a cache-defined internal age factor and on respective times the objects in the first queue spend in the external cache and respective times the objects in the first queue spend in an internal cache;

a second prioritizing module, stored in the memory, that prioritizes objects within the second queue based on respective times the objects in the second queue spend in the internal cache;

a third prioritizing module, stored in the memory, that prioritizes objects within the third queue based on respective times the objects in the third queue spend in the internal cache;

a selecting module, stored in the memory, that selects an oldest object having a longest time in any of the first queue, the second queue, and the third queue;

a deleting module, stored in the memory, that deletes the oldest object; and

at least one physical processor that executes the tracking module, the first queuing module, the first setting module, the second queuing module, the second setting module, the transferring module, the first prioritizing module, the second prioritizing module, the third prioritizing module, the selecting module, and the deleting module.

8. The system of claim 7 , further comprising:

a third setting module, stored in the memory, that sets the respective hold flag when the externally-accessed object is initially accessed externally; and

a clearing module, stored in the memory, that clears, when the externally-accessed object is purged, the respective hold flag.

9. The system of claim 7 , wherein at least one of the externally-accessed object and the internally-accessed object is an inode data structure.

10. The system of claim 7 , wherein at least one of the internal cache and the external cache is an inode cache.

11. The system of claim 10 , wherein the inode cache is in a file system layer, an operating system layer, or a network file system layer.

12. The system of claim 7 , wherein the deleting is initiated by at least one of a system memory reaching maximum capacity and an in-core cache reaching maximum capacity.

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

track, at the computing device, a respective time an externally-accessed object spends in an external cache;

queue, when the externally-accessed object is purged from the external cache, the externally-accessed object in a first queue;

set, when the externally-accessed object is purged, a respective unhold flag;

queue, when an internally-accessed object is released, the internally-accessed object in a second queue;

set, when the externally-accessed object in the first queue re-accessed internally, a respective hold flag;

transfer, when the externally-accessed object in the first queue having both a respective hold flag and a respective unhold flag set is released, the externally-accessed object to a third queue;

prioritize objects within the first queue based on a cache-defined internal age factor and on respective times the objects in the first queue spend in the external cache and respective times the objects in the first queue spend in an internal cache;

prioritize objects within the second queue based on respective times the objects in the second queue spend in the internal cache;

prioritize objects within the third queue based on respective times the objects in the third queue spend in the internal cache;

select an oldest object having a longest time in any of the first queue, the second queue, and the third queue; and

delete the oldest object.

14. The non-transitory computer-readable medium of claim 13 , wherein the computer-executable instructions further comprise computer-executable instructions that cause the computing device to:

set the respective hold flag when the externally-accessed object is initially accessed externally; and

clear, when the externally-accessed object is purged, the respective hold flag.

15. The non-transitory computer-readable medium of claim 13 , wherein at least one of the externally-accessed object and the internally-accessed object is an inode data structure.

16. The non-transitory computer-readable medium of claim 13 , wherein at least one of the internal cache and the external cache is an inode cache.

17. The non-transitory computer-readable medium of claim 16 , wherein the inode cache is in a file system layer, an operating system layer, or a network file system layer.

Assignments (14)
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 070530/0497 Recorded Dec 1, 2025
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: ARCTERA US LLC
Reel/Frame 073833/0730 →
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 →
RELEASE OF SECURITY INTEREST Recorded Dec 16, 2024
From: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069697/0238 →
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 INTEREST IN PATENTS AT R/F 052426/0001 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 054535/0565 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Apr 16, 2020
From: VERITAS TECHNOLOGIES, LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 052426/0001 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Mar 18, 2020
From: VERITAS TECHNOLOGIES LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 052189/0311 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 16, 2018
From: PATIDAR, JITENDRA; BANERJEE, ANINDYA
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 045814/0226 →