IP Library Granted Patent US 9,983,796
Granted Patent B2
US 9,983,796 · App. 14/856,586 · Granted May 29, 2018

Systems and methods for provisioning frequently used image segments from caches

Inventors: Yong Yang (Beijing, CN); Weibao Wu (Vadnais Heights, MN)
Assignee: Veritas Technologies LLC
G06F3/061G06F3/067G06F3/0656G06F11/14G06F17/30
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,983,796
App. No.
14/856,586
Granted
May 29, 2018
Kind
B2
Abstract

The disclosed computer-implemented method for provisioning frequently used image segments from caches may include (1) storing a representation and a use counter for an image segment that is hosted on a storage system in a list of representations and use counters for image segments hosted on the storage system, (2) incrementing a current value of the use counter for the image segment in the list of representations and use counters each time the image segment is provisioned from the storage system, (3) determining that the current value of the use counter for the image segment has met a predetermined threshold for frequent image-segment provisioning, (4) hosting the image segment in a cache that enables quicker provisioning than the storage system enables, and (5) provisioning the image segment from the cache in response to a request to provision the image segment. Various other methods, systems, and computer-readable media are also disclosed.

Claims (48)

1. A computer-implemented method for provisioning frequently used image segments from caches, at least a portion of the method being performed by a computing device comprising at least one processor, the method comprising:

storing a representation and a use counter for an image segment that is hosted on a storage system in a list of representations and use counters for image segments hosted on the storage system;

incrementing a current value of the use counter for the image segment in the list of representations and use counters each time a call, to a provisioning system, includes information about the image segment;

incrementing the current value of the use counter for the image segment in the list of representations and use counters each time the image segment is provisioned from the storage system;

determining that the current value of the use counter for the image segment has met a predetermined threshold for frequent image segment provisioning;

hosting the image segment in a cache that enables quicker provisioning than the storage system enables;

provisioning the image segment from the cache in response to a request to provision the image segment; and

removing the image segment from the cache in response to determining that the current value of the use counter for the image segment no longer meets the predetermined threshold for frequent image-segment provisioning, wherein the current value of the use counter is lower than a predetermined lower threshold for two consecutive provisioning periods.

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

the hosting the image segment in the cache comprises adding a fingerprint of the image segment to a list of fingerprints of image segments hosted in the cache;

the provisioning the image segment from the cache comprises determining, based on the presence of the fingerprint of the image segment in the list of fingerprints of image segments hosted in the cache, that the image segment is hosted in the cache.

3. The computer-implemented method of claim 1 , wherein the predetermined threshold for frequent image segment provisioning is calculated based on a predetermined number of the most frequently provisioned image segments over one or more of the provisioning periods.

4. The computer-implemented method of claim 1 , wherein the hosting the image segment in the cache comprises storing information about at least one location of at least one additional image segment that is frequently provisioned alongside the image segment and that is also hosted in the cache.

5. The computer-implemented method of claim 4 , wherein the provisioning the image segment from the cache comprises efficiently provisioning the additional image segment from the cache by using the stored information about the location of the additional image segment.

6. The computer-implemented method of claim 1 , wherein the image segment comprises a portion of a backup of a virtual machine.

7. The computer-implemented method of claim 1 , further comprising removing one or more least-frequently-used image segments from the cache when the cache is reaching a storage capacity limit.

8. A system for provisioning frequently used image segments from caches, the system comprising:

a storage module, stored in memory, that stores a representation and a use counter for an image segment that is hosted on a storage system in a list of representations and use counters for image segments hosted on the storage system;

an incrementing module, stored in the memory, that:

increments a current value of the use counter for the image segment in the list of representations and use counters each time a call, to a provisioning system, includes information about the image segment; and

increments the current value of the use counter for the image segment in the list of representations and use counters each time the image segment is provisioned from the storage system;

a determination module, stored in memory, that determines that the current value of the use counter for the image segment has met a predetermined threshold for frequent image segment provisioning;

a hosting module, stored in memory, that hosts the image segment in a cache that enables quicker provisioning than the storage system enables, wherein the hosting module removes the image segment from the cache in response to determining that the current value of the use counter for the image segment no longer meets the predetermined threshold for frequent image-segment provisioning, wherein the current value of the use counter is lower than a predetermined lower threshold for two consecutive provisioning periods;

a provisioning module, stored in memory, that provisions the image segment from the cache in response to a request to provision the image segment; and

at least one physical processor configured to execute the storage module, the incrementing module, the determination module, the hosting module, and the provisioning module.

9. The system of claim 8 , wherein:

the hosting module hosts the image segment in the cache by adding a fingerprint of the image segment to a list of fingerprints of image segments hosted in the cache;

the provisioning module provisions the image segment from the cache by determining, based on the presence of the fingerprint of the image segment in the list of fingerprints of image segments hosted in the cache, that the image segment is hosted in the cache.

10. The system of claim 8 , wherein the predetermined threshold for frequent image segment provisioning is calculated based on a predetermined number of the most frequently provisioned image segments over one or more of the provisioning periods.

11. The system of claim 8 , wherein the hosting module hosts the image segment in the cache by storing information about at least one location of at least one additional image segment that is frequently provisioned alongside the image segment and that is also hosted in the cache.

12. The system of claim 11 , wherein the provisioning module provisions the image segment from the cache by efficiently provisioning the additional image segment from the cache by using the stored information about the location of the additional image segment.

13. The system of claim 8 , wherein the image segment comprises a portion of a backup of a virtual machine.

14. The system of claim 8 , wherein the hosting module removes one or more least-frequently-used image segments from the cache when the cache is reaching a storage capacity limit.

15. A non-transitory computer-readable 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:

store a representation and a use counter for an image segment that is hosted on a storage system in a list of representations and use counters for image segments hosted on the storage system;

increment a current value of the use counter for the image segment in the list of representations and use counters each time a call, to a provisioning system, includes information about the image segment;

increment the current value of the use counter for the image segment in the list of representations and use counters each time the image segment is provisioned from the storage system;

determine that the current value of the use counter for the image segment has met a predetermined threshold for frequent image segment provisioning;

host the image segment in a cache that enables quicker provisioning than the storage system enables;

provision the image segment from the cache in response to a request to provision the image segment; and

remove the image segment from the cache in response to determining that the current value of the use counter for the image segment no longer meets the predetermined threshold for frequent image-segment provisioning, wherein the current value of the use counter is lower than a predetermined lower threshold for two consecutive provisioning periods.

16. The non-transitory computer-readable medium of claim 15 ,

host the image segment in the cache by adding a fingerprint of the image segment to a list of fingerprints of image segments hosted in the cache;

provision the image segment from the cache by determining, based on the presence of the fingerprint of the image segment in the list of fingerprints of image segments hosted in the cache, that the image segment is hosted in the cache.

17. The non-transitory computer-readable medium of claim 15 , wherein the predetermined threshold for frequent image segment provisioning is further calculated based on a predetermined number of the most frequently provisioned image segments over one or more of the provisioning periods.

18. The non-transitory computer-readable medium of claim 15 , wherein the one or more computer-readable instructions cause the computing device to host the image segment in the cache by storing information about at least one location of at least one additional image segment that is frequently provisioned alongside the image segment and that is also hosted in the cache.

19. The non-transitory computer-readable medium of claim 18 , wherein the one or more computer-readable instructions cause the computing device to provision the image segment from the cache by efficiently provisioning the additional image segment from the cache by using the stored information about the location of the additional image segment.

20. The non-transitory computer-readable medium of claim 15 , wherein the one or more computer-readable instructions cause the computing device to remove one or more least-frequently-used image segments from the cache when the cache is reaching a storage capacity limit.

Assignments (13)
AMENDMENT NO. 1 TO PATENT SECURITY AGREEMENT Recorded Apr 8, 2025
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 070779/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2025
From: VERITAS TECHNOLOGIES LLC
To: COHESITY, INC.
Reel/Frame 070335/0013 →
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 →
SECURITY INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK. N.A.
Reel/Frame 069890/0001 →
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: 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 037693/0158 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 17, 2015
From: YANG, YONG; WU, WEIBAO
To: SYMANTEC CORPORATION
Reel/Frame 036585/0565 →
Continuity (1)
Related Publication 20170083446A1 · Mar 23, 2017