IP Library Granted Patent US 11,947,800
Granted Patent B2
US 11,947,800 · App. 17/512,278 · Granted Apr 2, 2024

Determining weights for cache storage of fragmented data

Inventors: Gabriel Zvi BenHanokh (Tel-Aviv, IL); Orit Wasserman (Mitzpe Aviv, IL); Yehoshua Salomon (Kfar Saba, IL)
Assignee: RED HAT, INC.
G06F3/0611G06F3/0604G06F3/0646G06F3/0659G06F3/0683
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,947,800
App. No.
17/512,278
Granted
Apr 2, 2024
Kind
B2
Abstract

Fragmented data on a storage device may be additionally stored in a cache. A cache weight for determining storage of a data unit can be determined. For example, a computing device can receive storage device characteristics from a storage device. A data unit comprising multiple fragments may be stored on the storage device. The computing device can receive data unit characteristics from the storage device. The computing device can determine a cache weight for the data unit. The computing device may output the cache weight for determining storage of the data unit in a cache.

Claims (49)

1. A system comprising:

a processor; and

a memory including instructions that are executable by the processor for causing the processor to:

receive, from at least one storage device storing a data unit, a plurality of storage device characteristics comprising a storage device type of the at least one storage device, the data unit comprising a plurality of fragments stored in non-contiguous locations on the at least one storage device, wherein the data unit is additionally stored in a cache;

receive, from the at least one storage device, a plurality of data unit characteristics;

determine a device score associated with a difficulty of accessing the data unit from the storage device type;

determine, using the plurality of storage device characteristics and the plurality of data unit characteristics, a cache weight for the data unit based on the device score;

update a caching algorithm with the cache weight for the data unit, the updated caching algorithm configured to determine a prioritization order for data units to be removed from the cache; and

determine, based on the prioritization order, a removal of the data unit from the cache.

2. The system of claim 1 , wherein the plurality of storage device characteristics further comprises a storage device time that is an amount of time for accessing the data unit from the at least one storage device, wherein the plurality of data unit characteristics comprises a number of the plurality of fragments in the data unit and a number of the at least one storage device storing the plurality of fragments in the data unit.

3. The system of claim 2 , wherein the memory further includes instructions that are executable by the processor for causing the processor to:

determine the cache weight by multiplying the device score by the number of the plurality of fragments.

4. The system of claim 1 , wherein the cache further comprises a second data unit that is not stored on the at least one storage device, and wherein the plurality of data unit characteristics further comprises a potential number of the plurality of fragments in which the second data unit would be stored on the at least one storage device.

5. The system of claim 4 , wherein the cache weight is a first cache weight, and wherein the memory further includes instructions that are executable by the processor for causing the processor to:

determine a second cache weight for the second data unit by multiplying the potential number of the plurality of fragments by the device score;

update the caching algorithm with the second cache weight for the second data unit; and

determine, based on the prioritization order determined by the caching algorithm using the second cache weight, a removal of the second data unit from the cache and a storage of the second data unit in the at least one storage device.

6. The system of claim 1 , wherein a first fragment of the plurality of fragments for the data unit is stored on a first storage device and a second fragment of the plurality of fragments for the data unit is stored on a second storage device.

7. A method comprising:

receiving, by a processor and from at least one storage device storing a data unit, a plurality of storage device characteristics comprising a storage device type of the at least one storage device, the data unit comprising a plurality of fragments stored in non-contiguous locations on the at least one storage device, wherein the data unit is additionally stored in a cache;

receiving, by the processor and from the at least one storage device, a plurality of data unit characteristics;

determining, by the processor, a device score associated with a difficulty of accessing the data unit from the storage device type;

determining, by the processor and using the plurality of storage device characteristics and the plurality of data unit characteristics, a cache weight for the data unit based on the device score;

updating, by the processor, a caching algorithm with a cache weight for the data unit, wherein the updated caching algorithm determines a prioritization order for data units to be removed from the cache; and

determining, by the processor and based on the prioritization order, a removal of the data unit from the cache.

8. The method of claim 7 , wherein the plurality of storage device characteristics further includes a storage device time that is an amount of time for accessing the data unit from the at least one storage device, and wherein the plurality of data unit characteristics includes a number of the plurality of fragments in the data unit and a number of the at least one storage device storing the plurality of fragments in the data unit.

9. The method of claim 8 , further comprising:

determining the cache weight by multiplying the device score by the number of the plurality of fragments.

10. The method of claim 7 , wherein the cache further includes a second data unit that is not stored on the at least one storage device, and wherein the plurality of data unit characteristics further includes a potential number of the plurality of fragments in which the second data unit would be stored on the at least one storage device.

11. The method of claim 10 , wherein the cache weight is a first cache weight, and wherein the method further comprises:

determining a second cache weight for the second data unit by multiplying the potential number of the plurality of fragments by the device score;

updating the caching algorithm with the second cache weight for the second data unit; and

determining, based on the prioritization order determined by the caching algorithm using the second cache weight, a removal of the second data unit from the cache and a storage of the second data unit in the at least one storage device.

12. The method of claim 7 , wherein a first fragment of the plurality of fragments for the data unit is stored on a first storage device and a second fragment of the plurality of fragments for the data unit is stored on a second storage device.

13. A non-transitory computer-readable medium comprising program code that is executable by a processor for causing the processor to:

receive, from at least one storage device storing a data unit, a plurality of storage device characteristics comprising a storage device type of the at least one storage device, the data unit comprising a plurality of fragments stored in non- contiguous locations on the at least one storage device, wherein the data unit is additionally stored in a cache;

receive, from the at least one storage device, a plurality of data unit characteristics;

determine a device score associated with a difficulty of accessing the data unit from the storage device type;

determine, using the plurality of storage device characteristics and the plurality of data unit characteristics, a cache weight for the data unit based on the device score;

update a caching algorithm with the cache weight for the data unit, the updated caching algorithm configured to determine a prioritization order for data units to be removed from the cache; and

determine, based on the prioritization order, a removal of the data unit from the cache.

14. The non-transitory computer-readable medium of claim 13 , wherein the plurality of storage device characteristics further comprises a storage device time that is an amount of time for accessing the data unit from the at least one storage device, and wherein the plurality of data unit characteristics comprises a number of the plurality of fragments in the data unit and a number of at least one storage device storing the plurality of fragments in the data unit.

15. The non-transitory computer-readable medium of claim 14 , wherein the program code further comprises instructions that are executable by the processor for causing the processor to:

determine the cache weight by multiplying the device score by the number of the plurality of fragments.

16. The non-transitory computer-readable medium of claim 13 , wherein the cache further comprises a second data unit that is not stored on the at least one storage device, and wherein the plurality of data unit characteristics further comprises a potential number of the plurality of fragments in which the second data unit would be stored on the at least one storage device.

17. The non-transitory computer-readable medium of claim 16 , wherein the cache weight is a first cache weight, and wherein the program code further comprises instructions that are executable by the processor for causing the processor to:

determine a second cache weight for the second data unit by multiplying the potential number of the plurality of fragments by the device score;

update the caching algorithm with the second cache weight for the second data unit; and

determine, based on the prioritization order determined by the caching algorithm using the second cache weight, a removal of the second data unit from the cache and a storage of the second data unit in the at least one storage device.

Assignments (2)
CHANGE OF NAME Recorded Mar 3, 2026
From: RED HAT, INC.
To: RED HAT, LLC
Reel/Frame 074913/0759 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 28, 2021
From: WASSERMAN, ORIT; SALOMON, YEHOSHUA; BENHANOKH, GABRIEL ZVI
To: RED HAT, INC.
Reel/Frame 057940/0155 →