IP Library Granted Patent US 10,691,350
Granted Patent B2
US 10,691,350 · App. 15/814,022 · Granted Jun 23, 2020

Method for provisioning a volume of data including placing data based on rules associated with the volume

Inventors: Karolis Rusenas (London, GB); Simon Croome (Kent, GB); Alex Chircop (Buckinghamshire, GB)
Assignee: StorageOS Limited
G06F3/0619G06F3/065G06F3/0605G06F3/067G06F3/0634G06F3/0665
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,691,350
App. No.
15/814,022
Granted
Jun 23, 2020
Kind
B2
Abstract

A method for provisioning a volume of data is disclosed. The method involves identifying a set of rules associated with the volume of data, wherein the set of rules includes at least two conflicting rules, prioritizing the at least two conflicting rules, and placing the volume of data on a first computer system according to the prioritization. The method also includes collecting performance metrics corresponding to the placed volume of data, computing a score based on the collected performance metrics, determining if the computed score is acceptable, and determining that the placement is successful when the computer score is determined to be acceptable. The method further includes changing the prioritization of the at least two conflicting rules and placing the volume of data on a second computer system according to the changed prioritization when the score is determined to be unacceptable. The volume of data may be placed on the second computer system only during hours when the second computer system is not used, or during a period of time in which activity on the second computer system is relatively low.

Claims (30)

1. A computer-implemented method for provisioning a volume of data, the method comprising:

a rules engine identifying a set of placement rules associated with the volume of data, wherein the set of placement rules includes at least two conflicting placement rules;

the rules engine prioritizing the at least two conflicting placement rules;

a scheduler placing the volume of data on a first computer system according to the prioritization of the at least two conflicting placement rules;

after the volume of data is placed on the first computer system, the rules engine collecting performance metrics corresponding to the volume of data placed on the first computer system, wherein the performance metrics relate to at least one of the speed of memory access, the number of input/output (I/O) operations per unit of time, the size of I/O operations, replication latency, the size of a queue, and central processing unit (CPU) utilization;

after the volume of data is placed on the first computer system, the rules engine computing a score for the volume of data placed on the first computer system based on the collected performance metrics;

after the volume of data is placed on the first computer system, the rules engine determining if the computed score for the volume of data placed on the first computer system is acceptable; and

after the volume of data is placed on the first computer system, the rules engine changing the prioritization of the at least two conflicting placement rules relative to each other, the scheduler changing the placement of the volume of data according to the changed prioritization of the at least two conflicting placement rules, and the rules engine recomputing the score based on the changed placement, the prioritization changing, the placement changing, and the score recomputing repeating iteratively until the computed score for the volume of data is determined to be acceptable, wherein changing the prioritization of the at least two conflicting rules involves changing which of the at least two conflicting rules takes precedence over the other of the at least two conflicting rules in the placement of the volume of data.

2. The method of claim 1 wherein the volume of data is placed on a second computer system only during hours when the second computer system is not used.

3. The method of claim 1 wherein the volume of data is placed on a second computer system during a period of time in which activity on the second computer system is relatively low compared to activity on the second computer system during a time when a corresponding enterprise is open for business.

4. The method of claim 1 , further comprising:

after the volume of data is placed on a second computer system, collecting performance metrics corresponding to the volume of data placed on the second computer system;

after the volume of data is placed on the second computer system, computing a score for the volume of data placed on the second computer system based on the collected performance metrics;

after the volume of data is placed on the second computer system, determining if the computed score for the volume of data placed on the second computer system is acceptable; and

after the volume of data is placed on the second computer system, changing the prioritization of the at least two conflicting rules and changing the placement of the volume of data to a third computer system according to the changed prioritization when the computed score for the volume of data placed on the second computer system is determined to be unacceptable.

5. A non-transitory computer readable medium that stores computer executable code, which when executed by one or more processors, implements a method for provisioning a volume of data, the method comprising:

a rules engine identifying a set of placement rules associated with the volume of data, wherein the set of placement rules includes at least two conflicting placement rules;

the rules engine prioritizing the at least two conflicting placement rules;

a scheduler placing the volume of data on a first computer system according to the prioritization of the at least two conflicting placement rules;

after the volume of data is placed on the first computer system, the rules engine collecting performance metrics corresponding to the volume of data placed on the first computer system, wherein the performance metrics relate to at least one of the speed of memory access, the number of input/output (I/O) operations per unit of time, the size of I/O operations, replication latency, the size of a queue, and central processing unit (CPU) utilization;

after the volume of data is placed on the first computer system, the rules engine computing a score for the volume of data placed on the first computer system based on the collected performance metrics;

after the volume of data is placed on the first computer system, the rules engine determining if the computed score for the volume of data placed on the first computer system is acceptable; and

after the volume of data is placed on the first computer system, the rules engine changing the prioritization of the at least two conflicting placement rules relative to each other, the scheduler changing the placement of the volume of data according to the changed prioritization of the at least two conflicting placement rules, and the rules engine recomputing the score based on the changed placement, the prioritization changing, the placement changing, and the score recomputing repeating iteratively until the computed score for the volume of data is determined to be acceptable, wherein changing the prioritization of the at least two conflicting rules involves changing which of the at least two conflicting rules takes precedence over the other of the at least two conflicting rules in the placement of the volume of data.

6. The non-transitory computer readable medium of claim 5 , wherein the volume of data is placed on a second computer system only during hours when the second computer system is not used.

7. The non-transitory computer readable medium of claim 5 , wherein the volume of data is placed on a second computer system during a period of time in which activity on the second computer system is relatively low compared to activity on the second computer system during a time when a corresponding enterprise is open for business.

8. The non-transitory computer readable medium of claim 5 , further comprising:

after the volume of data is placed on a second computer system, collecting performance metrics corresponding to the volume of data placed on the second computer system;

after the volume of data is placed on the second computer system, computing a score for the volume of data placed on the second computer system based on the collected performance metrics;

after the volume of data is placed on the second computer system, determining if the computed score for the volume of data placed on the second computer system is acceptable; and

after the volume of data is placed on the second computer system, changing the prioritization of the at least two conflicting rules and changing the placement of the volume of data to a third computer system according to the changed prioritization when the computed score for the volume of data placed on the second computer system is determined to be unacceptable.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 13, 2023
From: STORAGEOS LTD
To: AKAMAI TECHNOLOGIES, INC.
Reel/Frame 063315/0364 →
RELEASE OF SECURITY INTEREST Recorded Apr 4, 2023
From: SILICON VALLEY BANK UK LIMITED
To: STORAGEOS LTD
Reel/Frame 063219/0746 →
SECURITY INTEREST Recorded Mar 23, 2021
From: STORAGEOS LTD
To: SILICON VALLEY BANK
Reel/Frame 055681/0812 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 1, 2017
From: RUSENAS, KAROLIS; CROOME, SIMON; CHIRCOP, ALEX
To: STORAGEOS LIMITED
Reel/Frame 044279/0364 →
Continuity (2)
Provisional Application 62422366 · Nov 15, 2016
Related Publication 20180136862A1 · May 17, 2018
Cited By (1)
US 12,192,281