IP Library Granted Patent US 10,248,618
Granted Patent B1
US 10,248,618 · App. 14/230,598 · Granted Apr 2, 2019

Scheduling snapshots

Inventors: Natasha Gaurav (Hopkinton, MA); Bruce R. Rabe (Dedham, MA); Binbin Liu Lin (West Boylston, MA); Scott E. Joyce (Foxborough, MA); Vidhi Bhardwaj (Milford, MA)
Assignee: EMC IP Holding Company LLC
G06F16/128
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,248,618
App. No.
14/230,598
Filed
Mar 31, 2014
Granted
Apr 2, 2019
Kind
B1
Art Unit
2169
USPC
707/639
Abstract

There are disclosed computer-implemented methods, apparatus, and computer program products for scheduling snapshots. In one embodiment, the method comprises the following steps. The method comprises receiving performance data relating to a data storage system. The method also comprises determining, based on the performance data, a time for performing a snapshot of data stored on the data storage system. The method further comprises scheduling the snapshot according to the time.

Claims (42)

1. A computer-implemented method, comprising:

receiving statistics data representing historic performance statistics over a predetermined period of time by a storage system, the historic performance statistics including resource consumption of a plurality of resources including at least one of a processor, memory, input-output (IO) transactions, and network bandwidth;

performing an analysis, by an analysis module executed by a processor, on the historic performance statistics to determine an optimal time window within the predetermined time period for taking a snapshot of data stored on the storage system based on the analysis, wherein performing an analysis on the historic performance statistics comprises assigning a weight factor for each resource for each point in time over the predetermined time period during which the historic performance statistics were collected, ranking each resource based on its resource consumption in view of its corresponding weight factor for each point in time over the predetermined time period, calculating a standard mean value and a standard deviation value based on resource rankings of sample points in time for each of a plurality of time window candidates, and selecting a time window from the time window candidates for taking snapshot, such that during the selected time window the standard mean value is within a first predetermined range while the standard deviation is within a second predetermined range; and

scheduling, by a scheduler executed by the processor, the snapshot according to the optimal time window.

2. An apparatus, comprising:

a processor; and

a memory coupled to the processor for storing instructions, which when executed from the memory, cause the processor to:

receive statistics data representing historic performance statistics over a predetermined period of time by a storage system, the historic performance statistics including resource consumption of a plurality of resources including at least one of a processor, memory, input-output (IO) transactions, and network bandwidth;

perform an analysis, by an analysis module executed by processor, on the historic performance statistics to determine an optimal time window within the predetermined time period for taking a snapshot of data stored on the storage system based on the analysis, wherein performing an analysis on the historic performance statistics comprises assigning a weight factor for each resource for each point in time over the predetermined time period during which the historic performance statistics were collected, ranking each resource based on its resource consumption in view of its corresponding weight factor for each point in time over the predetermined time period, calculating a standard mean value and a standard deviation value based on resource rankings of sample points in time for each of a plurality of time window candidates, and selecting a time window from the time window candidates for taking snapshot, such that during the selected time window the standard mean value is within a first predetermined range while the standard deviation is within a second predetermined range; and

schedule, by a scheduler executed by processor, the snapshot according to the optimal time window.

3. A computer program product having a non-transitory computer-readable medium storing instructions, the instructions, when carried out by a processor, causing the processor to perform a method of:

receiving statistics data representing historic performance statistics over a predetermined period of time by a storage system, the historic performance statistics including resource consumption of a plurality of resources including at least one of a processor, memory, input-output (IO) transactions, and network bandwidth;

performing an analysis, by an analysis module executed by processor, on the historic performance statistics to determine an optimal time window within the predetermined time period for taking a snapshot of data stored on the storage system based on the analysis, wherein performing an analysis on the historic performance statistics comprises assigning a weight factor for each resource for each point in time over the predetermined time period during which the historic performance statistics were collected, ranking each resource based on its resource consumption in view of its corresponding weight factor for each point in time over the predetermined time period, calculating a standard mean value and a standard deviation value based on resource rankings of sample points in time for each of a plurality of time window candidates, and selecting a time window from the time window candidates for taking snapshot, such that during the selected time window the standard mean value is within a first predetermined range while the standard deviation is within a second predetermined range; and

scheduling, by a scheduler executed by processor, the snapshot according to the optimal time window.

4. A computer-implemented method, comprising:

receiving statistics data representing historic performance statistics over a predetermined period of time by a storage system, the historic performance statistics including resource consumption of a plurality of resources including at least one of a processor, memory, input-output (IO) transactions, and network bandwidth;

performing an analysis, by an analysis module executed by a processor, on the historic performance statistics to determine an optimal time window within the predetermined time period for taking a snapshot of data stored on the storage system based on the analysis, wherein performing an analysis on the historic performance statistics comprises assigning a weight factor for each resource for each point in time over the predetermined time period during which the historic performance statistics were collected, and ranking each resource based on its resource consumption in view of its corresponding weight factor for each point in time over the predetermined time period, wherein ranking r i (t) for resource i at time t is determined by r i (t)=w i (t)*(M i -v i (t))/(M i −N i ), wherein w i (t) is a weight factor for resource i at time t, wherein v i (t) is a consumption level of resource i at time t, wherein M i is a maximum value at time t and N i is a minimum value at time t; and

scheduling, by a scheduler executed by the processor, the snapshot according to the optimal time window.

5. An apparatus, comprising:

a processor; and

a memory coupled to the processor for storing instructions, which when executed from the memory, cause the processor to:

receive statistics data representing historic performance statistics over a predetermined period of time by a storage system, the historic performance statistics including resource consumption of a plurality of resources including at least one of a processor, memory, input-output (IO) transactions, and network bandwidth;

perform an analysis, by an analysis module executed by processor, on the historic performance statistics to determine an optimal time window within the predetermined time period for taking a snapshot of data stored on the storage system based on the analysis, wherein performing an analysis on the historic performance statistics comprises assigning a weight factor for each resource for each point in time over the predetermined time period during which the historic performance statistics were collected, and ranking each resource based on its resource consumption in view of its corresponding weight factor for each point in time over the predetermined time period, wherein ranking r i (t) for resource i at time t is determined by r i (t)=w i (t)*(M i −v i (t))/(M i −N i ), wherein w i (t) is a weight factor for resource i at time t, wherein v i (t) is a consumption level of resource i at time t, wherein M i is a maximum value at time t and N i is a minimum value at time t; and

schedule, by a scheduler executed by processor, the snapshot according to the optimal time window.

6. A computer program product having a non-transitory computer-readable medium storing instructions, the instructions, when carried out by a processor, causing the processor to perform a method of:

receiving statistics data representing historic performance statistics over a predetermined period of time by a storage system, the historic performance statistics including resource consumption of a plurality of resources including at least one of a processor, memory, input-output (IO) transactions, and network bandwidth;

performing an analysis, by an analysis module executed by processor, on the historic performance statistics to determine an optimal time window within the predetermined time period for taking a snapshot of data stored on the storage system based on the analysis, wherein performing an analysis on the historic performance statistics comprises assigning a weight factor for each resource for each point in time over the predetermined time period during which the historic performance statistics were collected, and ranking each resource based on its resource consumption in view of its corresponding weight factor for each point in time over the predetermined time period, wherein ranking r i (t) for resource i at time t is determined by r i (t)=w i (t)*(M i −v i (t))/(M i −N i ), wherein w i (t) is a weight factor for resource i at time t, wherein v i (t) is a consumption level of resource i at time t, wherein M i is a maximum value at time t and N i is a minimum value at time t; and

scheduling, by a scheduler executed by processor, the snapshot according to the optimal time window.

7. A computer-implemented method, comprising:

receiving statistics data representing historic performance statistics over a predetermined period of time by a storage system, the historic performance statistics including resource consumption of a plurality of resources including at least one of a processor, memory, input-output (IO) transactions, and network bandwidth;

performing an analysis, by an analysis module executed by a processor, on the historic performance statistics to determine an optimal time window within the predetermined time period for taking a snapshot of data stored on the storage system based on the analysis, wherein performing an analysis on the historic performance statistics comprises assigning a weight factor for each resource for each point in time over the predetermined time period during which the historic performance statistics were collected, and ranking each resource based on its resource consumption in view of its corresponding weight factor for each point in time over the predetermined time period, wherein ranking r i (t) for resource i at time t is determined by r i (t)=w i (t)*exp(−v i (t) 2 /2σ 2 ), wherein w i (t) is a weight factor for resource i at time t, wherein v i (t) is a consumption level of resource i at time t, and wherein σ is calculated as a standard deviation for a discrete random variable; and

scheduling, by a scheduler executed by the processor, the snapshot according to the optimal time window.

8. An apparatus, comprising:

a processor; and

a memory coupled to the processor for storing instructions, which when executed from the memory, cause the processor to:

receive statistics data representing historic performance statistics over a predetermined period of time by a storage system, the historic performance statistics including resource consumption of a plurality of resources including at least one of a processor, memory, input-output (IO) transactions, and network bandwidth;

perform an analysis, by an analysis module executed by processor, on the historic performance statistics to determine an optimal time window within the predetermined time period for taking a snapshot of data stored on the storage system based on the analysis, wherein performing an analysis on the historic performance statistics comprises assigning a weight factor for each resource for each point in time over the predetermined time period during which the historic performance statistics were collected, and ranking each resource based on its resource consumption in view of its corresponding weight factor for each point in time over the predetermined time period, wherein ranking r i (t) for resource i at time t is determined by r i (t)=w i (t)*exp(−v i (t) 2 /2σ 2 ), wherein w i (t) is a weight factor for resource i at time t, wherein v i (t) is a consumption level of resource i at time t, and wherein σ is calculated as a standard deviation for a discrete random variable; and

schedule, by a scheduler executed by processor, the snapshot according to the optimal time window.

9. A computer program product having a non-transitory computer-readable medium storing instructions, the instructions, when carried out by a processor, causing the processor to perform a method of:

receiving statistics data representing historic performance statistics over a predetermined period of time by a storage system, the historic performance statistics including resource consumption of a plurality of resources including at least one of a processor, memory, input-output (IO) transactions, and network bandwidth;

performing an analysis, by an analysis module executed by processor, on the historic performance statistics to determine an optimal time window within the predetermined time period for taking a snapshot of data stored on the storage system based on the analysis, wherein performing an analysis on the historic performance statistics comprises assigning a weight factor for each resource for each point in time over the predetermined time period during which the historic performance statistics were collected, and ranking each resource based on its resource consumption in view of its corresponding weight factor for each point in time over the predetermined time period, wherein ranking r i (t) for resource i at time t is determined by r i (t)=w i (t)*exp(−v i (t) 2 /2σ 2 ), wherein w i (t) is a weight factor for resource i at time t, wherein v i (t) is a consumption level of resource i at time t, and wherein σ is calculated as a standard deviation for a discrete random variable; and

scheduling, by a scheduler executed by processor, the snapshot according to the optimal time window.

Assignments (12)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (050724/0466) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.)
Reel/Frame 060753/0486 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Oct 15, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 050724/0466 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2016
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 040203/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 26, 2014
From: GAURAV, NATASHA; RABE, BRUCE R.; LIN, BINBIN LIU; JOYCE, SCOTT E.; BHARDWAJ, VIDHI
To: EMC CORPORATION
Reel/Frame 033183/0721 →
Cited By (5)
US 12,235,799 US 12,373,397 US 12,399,869 US 12,541,486 US 12,547,582