IP Library Granted Patent US 11,513,967
Granted Patent B1
US 11,513,967 · App. 17/138,086 · Granted Nov 29, 2022

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 11,513,967
App. No.
17/138,086
Granted
Nov 29, 2022
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 (53)

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;

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

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;

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

using a third queue to account for delay times in at least one internal cache

prioritizing objects within the third queue based on time spent in the at least one internal cache,

selecting the 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 , wherein at least one of the externally-accessed object and the internally-accessed object is an inode data structure.

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

4. 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;

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

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;

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

using a third queue to account for delay times in at least one internal cache;

in response to objects in the first queue being released after having been accessed internally, queuing the internally-accessed objects in a third queue;

prioritizing objects within the third queue based on time spent in the at least one internal cache;

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

deleting the oldest object.

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

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

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 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 third queuing module to account for times in at least one internal cache;

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 spend in the external cache and respective times the objects 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 spend in the internal cache;

a third prioritization module to prioritize objects within the third queuing module based on time spent in the at least one internal cache;

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

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 second queuing module, the first prioritizing module, the second prioritizing module, the selecting module, and the deleting module.

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

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

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

11. 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;

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

use a third queue to account for times in at least one internal cache;

prioritize 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;

prioritize objects within the third queue based on time spent in the at least one 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.

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

in response to objects in the first queue being released after having been accessed internally, queuing the internally-accessed objects in a third queue.

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

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

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

Assignments (12)
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 069591/0510 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069577/0001 →
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 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Mar 7, 2022
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 059337/0159 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Feb 24, 2022
From: VERITAS TECHNOLOGIES LLC
To: BANK OF AMERICA, N.A.
Reel/Frame 059247/0656 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 31, 2020
From: PATIDAR, JITENDRA; BANERJEE, ANINDYA
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 054787/0323 →
Continuity (1)
Continuation 15980770 · May 16, 2018