IP Library Granted Patent US 10,884,934
Granted Patent B1
US 10,884,934 · App. 16/255,884 · Granted Jan 5, 2021

Prefetching data units to a cache of a storage system

Inventor: Yechiel Yochai (Lehavot Haviva, IL)
G06F12/0862G06F2212/602G06F2212/6026
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,884,934
App. No.
16/255,884
Granted
Jan 5, 2021
Kind
B1
Abstract

A method for prefetching in a mass storage system, the method may include receiving or generating a request to fetch, to a cache memory of the mass storage system, a certain data unit that is currently not stored in the cache memory; wherein the certain data unit and additional data units form a certain cluster of data units; wherein the certain data unit and the additional data units have similar activity signatures; wherein at least two data units of the certain cluster differ from each other by at least one of (a) a file system, (b) a logical volume, and (c) an accessing unit; wherein for each data unit of the certain cluster, an activity signature related to the data unit provides a coarse estimation of activity related to the data unit during multiple time periods; fetching the certain data unit stored in a mass storage unit; and prefetching at least some of the additional data units that are not currently stored in the cache memory.

Claims (29)

1. A method for prefetching in a mass storage system, the method comprises:

receiving or generating a request to fetch, to a cache memory of the mass storage system, a certain data unit that is currently not stored in the cache memory; wherein the certain data unit and additional data units form a certain cluster of data units; wherein the certain data unit and the additional data units have similar activity signatures; wherein at least two data units of the certain cluster differ from each other by at least one of (a) a file system, (b) a logical volume, and (c) an accessing unit; wherein each data unit of the certain cluster is associated with an activity signature that provides estimation of activity related to the data unit during multiple time periods;

fetching the certain data unit stored in a mass storage unit; and

prefetching at least some of the additional data units that are not currently stared in the cache memory,

wherein the multiple data units comprise a plurality of data units that do not belong to the certain cluster; wherein the method comprises clustering the multiple data units to clusters, wherein the clusters comprise the certain cluster and at least one other cluster.

2. The method according to claim 1 wherein each activity signature is a bit map that allocates at least one bit per time period of the multiple time periods.

3. The method according to claim 1 comprising monitoring accesses related to multiple data units and generating multiple activity signatures for the multiple data units; and wherein the multiple data units comprise the certain data unit and the additional data units.

4. The method according to claim 1 wherein the activity signature is indicative of whether there was any access to the data unit during each one of the multiple time periods.

5. The method according to claim 1 wherein the activity signature is indicative of whether an amount of accesses to the data unit during each one of the multiple time periods exceeds an activity threshold.

6. The method according to claim 1 wherein a duration of each one of the multiple time periods exceeds by a factor of at least one thousand a duration of the fetching of the certain data unit.

7. The method according to claim 1 wherein a duration of each one of the multiple time periods exceeds a minute.

8. The method according to claim 1 wherein an aggregate duration of the multiple time periods exceeds a day.

9. The method according to claim 1 comprising searching within an activity signature of a data unit of the certain cluster of data units for a repetitive pattern having a repetition cycle; determining, based on the repetitive pattern, a next repetition of the repetitive pattern; and performing a prefetch operation based on the next repetition of the repetitive pattern.

10. A non-transitory computer readable medium that stores instructions that once executed by a mass storage system causes the mass storage system to execute the steps of: receiving or generating a request to fetch, to a cache memory of the mass storage system, a certain data unit that is currently not stored in the cache memory; wherein the certain data unit and additional data units form a certain cluster of data units; wherein the certain data unit and the additional data units have similar activity signatures; wherein at least two data units of the certain cluster differ from each other by at least one of (a) a file system, (b) a logical volume, and (c) an accessing unit; wherein each data unit of the certain cluster is associated with an activity signature that provides a coarse estimation of activity related to the data unit during multiple time periods; fetching the certain data unit stored in a mass storage unit; and prefetching at least some of the additional data units that are not currently stored in the cache memory,

wherein the multiple data units comprise a plurality of data units that do not belong to the certain cluster; wherein the method comprises clustering the multiple data units to clusters, wherein the clusters comprise the certain cluster and at least one other cluster.

11. The non-transitory computer readable medium according to claim 10 wherein each activity signature is a bit map that allocates at least one bit per time period of the multiple time periods.

12. The non-transitory computer readable medium according to claim 10 comprising monitoring accesses related to multiple data units and generating multiple activity signatures for the multiple data units; and wherein the multiple data units comprise the certain data unit and the additional data units.

13. The non-transitory computer readable medium according to claim 10 wherein the activity signature is indicative of whether there was any access to the data unit during each one of the multiple time periods.

14. The non-transitory computer readable medium according to claim 10 wherein the activity signature is indicative of whether an amount of accesses to the data unit during each one of the multiple time periods exceeds an activity threshold.

15. The non-transitory computer readable medium according to claim 10 wherein a duration of each one of the multiple time periods exceeds by a factor of at least one thousand a duration of the fetching of the certain data unit.

16. The non-transitory computer readable medium according to claim 10 wherein a duration of each one of the multiple time periods exceeds a minute.

17. The non-transitory computer readable medium according to claim 10 wherein an aggregate duration of the multiple time periods exceeds a day.

18. The non-transitory computer readable medium according to claim 10 that stores instructions for searching within an activity signature of a data unit of the certain cluster of data units for a repetitive pattern having a repetition cycle; determining, based on the repetitive pattern, a next repetition of the repetitive pattern; and performing a prefetch operation based on the next repetition of the repetitive pattern.

19. A method for prefetching in a mass storage system, the method comprises:

generating or receiving activity signatures of a data units;

clustering the data units to multiple clusters; wherein each cluster comprises data units having similar activity signatures; wherein at least two data units of a certain cluster of the multiple clusters differ from each other by at least one of (a) a file system, (b) a logical volume, and (c) an accessing unit; wherein each data unit of the certain cluster is associated with an activity signature related to the data unit provides a coarse estimation of activity related to the data unit during multiple time periods;

searching within an activity signature of a data unit of the certain cluster of data units for a repetitive pattern having a repetition cycle;

determining, based on the repetitive pattern, a next repetition of the repetitive pattern; and

performing a prefetch operation based on the next repetition of the repetitive pattern.

Assignments (5)
SECURITY INTEREST Recorded Jan 30, 2025
From: INFINIDAT LTD
To: KREOS CAPITAL VII AGGREGATOR SCSP,
Reel/Frame 070056/0458 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 2, 2024
From: YOCHAI, YECHIEL
To: INFINDAT LTD.
Reel/Frame 068776/0125 →
RELEASE OF SECURITY INTEREST IN IP RECORDED AT R/F 55653/0854 Recorded Jan 18, 2024
From: SILICON VALLEY BANK
To: INFINIDAT LTD.
Reel/Frame 066344/0064 →
SECURITY INTEREST Recorded Jan 10, 2024
From: INFINIDAT LTD
To: HSBC BANK PLC
Reel/Frame 066268/0584 →
SECURITY INTEREST Recorded Mar 18, 2021
From: INFINIDAT LTD.
To: SILICON VALLEY BANK
Reel/Frame 055653/0854 →
Cited By (1)
US 12,265,472