IP Library Granted Patent US 10,168,916
Granted Patent B2
US 10,168,916 · App. 14/530,774 · Granted Jan 1, 2019

System, method and a non-transitory computer readable medium for reduction of consumption of storage system resources

Inventors: Eran Brown (Givatayim, IL); Jacob Broido (Tel-Aviv, IL)
Assignee: INFINIDAT LTD.
G06F3/0614G06F3/0643G06F3/0659G06F3/0671G06F11/1456G06F11/1458G06F11/1471G06F12/0868G06F17/30G06F2212/463
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,168,916
App. No.
14/530,774
Granted
Jan 1, 2019
Kind
B2
Abstract

A method that may include receiving, by a storage system, a write request for storing in the storage system multiple input data units that are related to a certain file; comparing, by the storage system, the multiple input data units to stored data units of the certain file to find matching and non-matching input data units; wherein each matching input data unit equals a corresponding stored data unit and each non-matching input data unit differs from a corresponding stored data unit; preventing a storage of each matching input data unit; storing each non-matching input data unit; and updating at least one storage system management data structure to reflect a reception of non-matching input data units while not reflecting a reception of matching input data units.

Claims (36)

1. A method, comprising:

receiving, by a storage system from an application running on a host computer coupled to the storage system, a write request that comprises multiple input data units to be stored in the storage system in relation to a certain file that belongs to a certain file system;

comparing, by the storage system, the multiple input data units to stored data units of the certain file to find matching and non-matching input data units among the multiple data units; wherein each matching input data unit equals a corresponding stored data unit and each non-matching input data unit differs from a corresponding stored data unit;

preventing overwriting stored data units related to the matching input data units;

storing each non-matching input data unit;

updating at least one storage system management data structure to reflect a reception of non-matching input data units while not reflecting a reception of matching input data units;

monitoring write requests related to the certain file system;

determining that the certain file system exceeded a certain threshold of write requests to store matching input data units; and

sending an alert indicative of undesired requests, related to the certain file system, to store matching input data units.

2. The method according to claim 1 further comprising determining whether an aggregate size of the multiple input data units exceeds a certain size threshold; and

wherein the comparing is executed only when the aggregate size of the multiple data units exceeds the certain size threshold.

3. The method according to claim 2 wherein the certain size threshold is determined based upon an aggregate size of the stored data units of the certain file.

4. The method according to claim 2 wherein the certain size threshold exceeds a half of an aggregate size of the stored data units of the certain file.

5. The method according to claim 1 comprising allocating storage system resources to the certain file system in response to a value indicative of a number of write requests to store matching input data units, associated with the certain file system.

6. The method according to claim 1 comprising allocating storage system resources to different file systems in response to values indicative of numbers of write requests to store matching input data units associated with the different file systems.

7. The method according to claim 6 wherein the comparing comprises caching the stored data file units in a cache memory of the storage system.

8. The method according to claim 7 comprising allocating cache memory resources to different file systems in response to the values indicative of numbers of write requests to store matching input data units of the different file systems.

9. The method according to claim 1 comprising prioritizing caching of stored data units related to a first file system over caching of stored data units related to a second file system when the first file system is associated with more requests to store matching input data units than the second file system.

10. The method according to claim 9 wherein the prioritizing comprises preferring a deletion, from the cache, of stored data units that are associated with the second file system.

11. The method according to claim 1 wherein the at least one storage system management data structure comprises a journal file.

12. The method according to claim 1 wherein the at least one storage system management data structure comprises a snapshot management data structure.

13. The method according to claim 1 wherein the at least one storage system management data structure comprises data changes data structure indicative of changes in data stored in the storage system.

14. A method comprising:

receiving, by a storage system from an application running on a host computer coupled to the storage system, a write request that comprises multiple input data units to be stored in the storage system in relation to a certain file that belongs to a certain file system and stored in the storage system;

comparing, by the storage system and only if an aggregate size of the multiple input data units exceeds a majority of a size of the certain file, the multiple input data units to stored data units of the certain file to find matching and non-matching input data units among the multiple data units; wherein each matching input data unit equals a corresponding stored data unit and each non-matching input data unit differs from a corresponding stored data unit;

preventing overwriting stored data units related to the matching input data units;

storing each non-matching input data unit;

monitoring write requests related to the certain file system;

determining that the certain file system exceeded a certain threshold of write requests to store matching input data units; and

sending an alert indicative of undesired requests, related to the certain file system, to store matching input data units.

15. The method according to claim 14 further comprising updating at least one storage system management data structure to reflect a reception of non-matching input data units while not reflecting a reception of matching input data units.

16. A non-transitory computer readable medium that stores instructions to be executed by a computerized system for receiving, by a storage system from an application running on a host computer coupled to the storage system, a write request that comprises multiple input data units to be stored in the storage system in relation to a certain file that belongs to a certain file system; comparing, by the storage system, the multiple input data units to stored data units of the certain file to find matching and non-matching input data units among the multiple data units; wherein each matching input data unit equals a corresponding stored data unit and each non-matching input data unit differs from a corresponding stored data unit; preventing overwriting stored data units related to the matching input data units; storing each non-matching input data unit; updating at least one storage system management data structure to reflect a reception of non-matching input data units while not reflecting a reception of matching input data units; monitoring write requests related to the certain file system; determining that the certain file system exceeded a certain threshold of write requests to store matching in nut data units; and sending an alert indicative of undesired requests, related to the certain file system, to store matching input data units.

17. A non-transitory computer readable medium that stores instructions to be executed by a computerized system for receiving, by a storage system from an application running on a host computer coupled to the storage system, a write request that comprises multiple input data units to be stored in the storage system in relation to a certain file that belongs to a certain file system and stored in the storage system; comparing, by the storage system and only if an aggregate size of the multiple input data units exceeds a majority of a size of the certain file, the multiple input data units to stored data units of the certain file to find matching and non-matching input data units among the multiple data units; wherein each matching input data unit equals a corresponding stored data unit and each nonmatching input data unit differs from a corresponding stored data unit; preventing overwriting stored data units related to the matching input data units;

storing each non-matching input data unit; monitoring write requests related to the certain file system; determining that the certain file system exceeded a certain threshold of write requests to store matching input data units; and sending an alert indicative of undesired requests, related to the certain file system, to store matching input data units.

18. A storage system comprising a cache memory and a control module, wherein the storage system is configured to store at least one storage system management data structure; wherein the control module is configured to receive, from an application running on a host computer coupled to the storage system, a write request that comprises multiple input data units to be stored in the storage system in relation to a certain file that belongs to a certain file system; compare the multiple input data units to stored data units of the certain file to find matching and non-matching input data units among the multiple data units; wherein each matching input data unit equals a corresponding stored data unit and each non-matching input data unit differs from a corresponding stored data unit; prevent overwriting stored data units related to the matching input data units; instruct a storage in the storage system of each non-matching input data unit; update the at least one storage system management data structure to reflect a reception of non-matching input data units while not reflecting a reception of matching input data units; monitor write requests related to the certain file system; determine that the certain file system exceeded a certain threshold of write requests to store matching input data units: and send an alert indicative of undesired requests, related to the certain file system, to store matching input data units.

19. A storage system comprising a cache memory and a control module, wherein the control module is configured to receive, from an application running on a host computer coupled to the storage system, a write request that comprises multiple input data units to be stored in the storage system in relation to a certain file that belongs to a certain file system and stored in the storage system; compare, only if an aggregate size of the multiple input data units exceeds a majority of a size of the certain file, the multiple input data units to stored data units of the certain file to find matching and non-matching input data units among the multiple data units; wherein each matching input data unit equals a corresponding stored data unit and each non-matching input data unit differs from a corresponding stored data unit; prevent overwriting stored data units related to the matching input data units; instruct a storing of each non-matching input data unit in the storage system; monitor write requests related to the certain file system; determine that the certain file system exceeded a certain threshold of write requests to store matching input data units; and send an alert indicative of undesired requests, related to the certain file system, to store matching input data units.

Assignments (6)
SECURITY INTEREST Recorded Jan 30, 2025
From: INFINIDAT LTD
To: KREOS CAPITAL VII AGGREGATOR SCSP,
Reel/Frame 070056/0458 →
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 11, 2024
From: INFINIDAT LTD
To: KREOS CAPITAL VI (EXPERT FUND) L.P.; KREOS CAPITAL 2020 OPPORTUNITY L.P.
Reel/Frame 066270/0359 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 13, 2015
From: BROWN, ERAN; BROIDO, JACOB
To: INFINIDAT LTD.
Reel/Frame 034691/0764 →
Continuity (1)
Related Publication 20160124660A1 · May 5, 2016