IP Library Granted Patent US 12,242,757
Granted Patent B2
US 12,242,757 · App. 17/383,627 · Granted Mar 4, 2025

System and method for storage optimization using machine learning- driven application and workload identification

Inventors: Shaul Dar (Petach Tikva, IL); Ranjith Reddy Basireddy (Telangana, IN); Rajesh Alevoor Kini (Karnataka, IN)
Assignee: EMC IP Holding Company, LLC
G06F3/0659G06F3/061G06F3/0689G06N20/00G06F2212/7202
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 12,242,757
App. No.
17/383,627
Granted
Mar 4, 2025
Kind
B2
Abstract

A method, computer program product, and computing system for receiving a first set of input/output (IO) requests for one or more storage objects. One or more IO properties may be extracted from the first set of IO requests. Metadata may be associated with the one or more storage objects using one or more machine learning models based upon, at least in part, the one or more IO properties extracted from the first set of IO requests, thus defining storage object metadata. One or more IO processing rules may be enabled based upon, at least in part, the storage object metadata. A subsequent set of IO requests may be received. Processing of the subsequent set of IO requests on the one or more storage objects may be optimized based upon, at least in part, the storage object metadata and the one or more IO processing rules associated with the one or more storage objects.

Claims (59)

1. A computer-implemented method, executed on a computing device, comprising:

receiving a first set of input/output (IO) requests for one or more storage objects stored on a storage array;

extracting one or more IO properties from the first set of IO requests;

associating metadata with the one or more storage objects using one or more machine learning models based upon, at least in part, the one or more IO properties extracted from the first set of IO requests, thus defining storage object metadata,

wherein associating the storage object metadata with the one or more storage objects includes associating temporal storage object metadata with the one or more storage objects, wherein the temporal storage object metadata indicates a period of time for which a particular temporal storage object metadata is relevant for a particular storage object, and

wherein associating the storage object metadata with the one or more storage objects includes associating spatial IO processing metadata with the one or more storage objects, wherein the spatial IO processing metadata indicates how the particular storage object is being apportioned into multiple sub-portions for utilizing the multiple sub-portions in different applications and for distinct workflows;

enabling one or more IO processing rules based upon, at least in part, the storage object metadata;

receiving a subsequent set of IO requests, wherein in response to receiving the subsequent set of IO requests, identifying the storage object metadata associated with the one or more storage objects targeted by the subsequent set of IO requests;

defining the one or more IO processing rules for optimizing processing of the subsequent set of IO requests on the one or more storage objects based upon, at least in part, the storage object metadata associated with the one or more storage objects and monitoring the one or more storage objects before, during, and after the processing of the first set of IO requests and the subsequent set of IO requests;

enabling storage optimization of the processing of the subsequent set of IO requests on the one or more storage objects based upon, at least in part, the storage object metadata and the one or more IO processing rules associated with the one or more storage objects;

dynamically adjusting values of one or more of the storage object metadata and the one or more IO processing rules based upon, at least in part, the processing of the subsequent IO requests on the one or more storage objects; and

updating IO processing rules for new IO requests based on new learnings and new storage object metadata to optimize and automate the storage array.

2. The computer-implemented method of claim 1 , wherein the one or more storage objects include at least one of:

one or more volumes;

one or more files; and

one or more Logical Unit Numbers (LUNs).

3. The computer-implemented method of claim 1 , wherein associating the storage object metadata with the one or more storage objects includes:

associating spatial storage object metadata with the one or more storage objects.

4. The computer-implemented method of claim 1 , wherein associating the storage object metadata with the one or more storage objects includes:

receiving one or more user-defined associations of storage object metadata with the one or more storage objects.

5. The computer-implemented method of claim 4 , wherein associating the storage object metadata with the one or more storage objects includes:

providing the one or more user-defined associations of storage object metadata with the one or more storage objects to the one or more machine learning models as training data.

6. The computer-implemented method of claim 1 , wherein the one or more machine learning models are configured for one or more of: offline training and continuous training.

7. A computer program product residing on a non-transitory computer readable medium having a plurality of instructions stored thereon which, when executed by a processor, cause the processor to perform operations comprising:

receiving a first set of input/output (IO) requests for one or more storage objects stored on a storage array;

extracting one or more IO properties from the first set of IO requests;

associating metadata with the one or more storage objects using one or more machine learning models based upon, at least in part, the one or more IO properties extracted from the first set of IO requests, thus defining storage object metadata,

wherein associating the storage object metadata with the one or more storage objects includes associating temporal storage object metadata with the one or more storage objects, wherein the temporal storage object metadata indicates a period of time for which a particular temporal storage object metadata is relevant for a particular storage object, and

wherein associating the storage object metadata with the one or more storage objects includes associating spatial IO processing metadata with the one or more storage objects, wherein the spatial IO processing metadata indicates how the particular storage object is being apportioned into multiple sub-portions for utilizing the multiple sub-portions in different applications and for distinct workflows;

enabling one or more IO processing rules based upon, at least in part, the storage object metadata;

receiving a subsequent set of IO requests, wherein in response to receiving the subsequent set of IO requests, identifying the storage object metadata associated with the one or more storage objects targeted by the subsequent set of IO requests;

defining the one or more IO processing rules for optimizing processing of the subsequent set of IO requests on the one or more storage objects based upon, at least in part, the storage object metadata associated with the one or more storage objects and monitoring the one or more storage objects before, during, and after the processing of the first set of IO requests and the subsequent set of IO requests;

enabling storage optimization of the processing of the subsequent set of IO requests on the one or more storage objects based upon, at least in part, the storage object metadata and the one or more IO processing rules associated with the one or more storage objects;

dynamically adjusting values of one or more of the storage object metadata and the one or more IO processing rules based upon, at least in part, the processing of the subsequent IO requests on the one or more storage objects; and

updating IO processing rules for new IO requests based on new learnings and new storage object metadata.

8. The computer program product of claim 7 , wherein the one or more storage objects include at least one of:

one or more volumes;

one or more files; and

one or more Logical Unit Numbers (LUNs).

9. The computer program product of claim 7 , wherein associating the storage object metadata with the one or more storage objects includes:

associating spatial storage object metadata with the one or more storage objects.

10. The computer program product of claim 7 , wherein associating the storage object metadata with the one or more storage objects includes:

receiving one or more user-defined associations of storage object metadata with the one or more storage objects.

11. The computer program product of claim 10 , wherein associating the storage object metadata with the one or more storage objects includes:

providing the one or more user-defined associations of storage object metadata with the one or more storage objects to the one or more machine learning models as training data.

12. The computer program product of claim 7 , wherein the one or more machine learning models are configured for one or more of: offline training and continuous training.

13. A computing system comprising:

a memory; and

a processor configured to receive a first set of input/output (IO) requests for one or more storage objects stored on a storage array, wherein the processor is further configured to extract one or more IO properties from the first set of IO requests, wherein the processor is further configured to associate metadata with the one or more storage objects using one or more machine learning models based upon, at least in part, the one or more IO properties extracted from the first set of IO requests, thus defining storage object metadata, wherein associating the storage object metadata with the one or more storage objects includes associating temporal storage object metadata with the one or more storage objects, wherein the temporal storage object metadata indicates a period of time for which a particular temporal storage object metadata is relevant for a particular storage object, wherein associating the storage object metadata with the one or more storage objects includes associating spatial IO processing metadata with the one or more storage objects, wherein the spatial IO processing metadata indicates how the particular storage object is being apportioned into multiple sub-portions for utilizing the multiple sub-portions in different applications and for distinct workflows, wherein the processor is further configured to enable one or more IO processing rules based upon, at least in part, the storage object metadata objects, wherein the processor is further configured to receive a subsequent set of IO requests, wherein in response to receiving the subsequent set of IO requests, the processor is further configured to identify the storage object metadata associated with the one or more storage objects targeted by the subsequent set of IO requests, wherein the processor is further configured to define the one or more IO processing rules for optimizing processing of the subsequent set of IO requests on the one or more storage objects based upon, at least in part, the storage object metadata associated with the one or more storage objects and monitoring the one or more storage objects before, during, and after the processing of the first set of IO requests and the subsequent set of IO requests, wherein the processor is further configured to enable storage optimization of the processing of the subsequent set of IO requests on the one or more storage objects based upon, at least in part, the storage object metadata and the one or more IO processing rules associated with the one or more storage objects, wherein the processor is further configured to dynamically adjust values of one or more of the storage object metadata and the one or more IO processing rules based upon, at least in part, the processing of the subsequent IO requests on the one or more storage objects, and wherein the processor is further configured to update IO processing rules for new IO requests based on new learnings and new storage object metadata.

14. The computing system of claim 13 , wherein the one or more storage objects include at least one of:

one or more volumes;

one or more files; and

one or more Logical Unit Numbers (LUNs).

15. The computing system of claim 13 , wherein associating the storage object metadata with the one or more storage objects includes:

associating spatial storage object metadata with the one or more storage objects.

16. The computing system of claim 13 , wherein associating the storage object metadata with the one or more storage objects includes:

receiving one or more user-defined associations of storage object metadata with the one or more storage objects.

17. The computing system of claim 16 , wherein associating the storage object metadata with the one or more storage objects includes:

providing the one or more user-defined associations of storage object metadata with the one or more storage objects to the one or more machine learning models as training data.

Assignments (8)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (058014/0560) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 062022/0473 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (057931/0392) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 062022/0382 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (057758/0286) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 061654/0064 →
SECURITY INTEREST Recorded Oct 6, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 058014/0560 →
SECURITY INTEREST Recorded Oct 6, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 057758/0286 →
SECURITY INTEREST Recorded Oct 6, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 057931/0392 →
SECURITY AGREEMENT Recorded Oct 1, 2021
From: DELL PRODUCTS, L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 057682/0830 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 23, 2021
From: DAR, SHAUL; BASIREDDY, RANJITH REDDY; KINI, RAJESH ALEVOOR
To: EMC IP HOLDING COMPANY, LLC
Reel/Frame 056957/0470 →
Continuity (1)
Related Publication 20220391137A1 · Dec 8, 2022
References Cited (6)
US 8880836B2 · Owa · 2014 [cited by examiner]
US 10127234B1 · Krishnan · 2018 [cited by examiner]
US 20110145486A1 · Owa · 2011 [cited by examiner]
US 20140359046A1 · Colle · 2014 [cited by examiner]
US 20180373722A1 · Ulasen · 2018 [cited by examiner]
US 20200019311A1 · Zolotow · 2020 [cited by examiner]