IP Library Granted Patent US 9,973,572
Granted Patent B2
US 9,973,572 · App. 15/099,534 · Granted May 15, 2018

Server load management for data migration

Inventors: John Dennis (Seattle, WA); Evan Richman (Seattle, WA); Todd Schwartz (Seattle, WA); Bradley Younge (Denver, CO); Manoj Ganesh Panse (Seattle, WA)
Assignee: SKYKICK, INC.
H04L67/1002G06F3/0647G06F3/0653H04L41/0896H04L41/5009H04L41/5025H04L43/0888H04L67/148H04L69/14
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 9,973,572
App. No.
15/099,534
Granted
May 15, 2018
Kind
B2
Abstract

A system and method for controlling a migration of data items in a data directory from a source system to a destination system by setting one or more target properties for implementing the migration are disclosed. A migration controller can be employed to obtain statistical information regarding the migration. The statistical information can then be used to compute the one or more target properties. For example, a target number of network connections for achieving an optimal total throughput and concurrency can be computed based on an average throughput per network connection. The target number of network connections may be determined by a migration monitor, which may set the determined target number of network connections as a policy to be enforced by the migration controller.

Claims (38)

1. A method for optimizing performance of a source server configured to facilitate migration of data items in a data directory through network connections provided by the source server to a destination server, the method comprising:

determining a set of average throughputs per network connection provided by the source server for migrating the data items in the data directory to the destination server, each of the average throughputs in the set corresponding to a unique number of network connections provided by the source server, wherein determining an average throughput of a particular number of network connections provided by the source server comprises:

through the particular number of network connections provided by the source server, sending a number of requests for the source server to process an amount of data;

for each of the particular number of network connections provided by the source server:

obtaining response time for which the source server processed the amount of data sent through the network connection; and

computing a throughput of the network connection based on the response time; and

computing an average throughput per network connection for the particular number of network connections by dividing a sum of the throughput of each of the particular number of network connections provided by the source server by the quantity of the particular number of network connections;

identifying a target number of network connections corresponding to a specific change in average throughput per connection based on a change in the number of network connections provided by the source server;

setting the target number of network connections for managing network connections provided by the source server; and

implementing, by a migration controller, migration of the data items in the data directory from the source server to the destination system using the target number of network connections.

2. The method of claim 1 , wherein the target number of network connections is identified such that a decrease in average throughput per connection is greatest from the target number to target number plus one.

3. The method of claim 1 , wherein the amount of the data requested to be processed for each network connection is the same.

4. The method of claim 1 , wherein identifying the target number of network connections comprises:

plotting a series of points in a Cartesian coordinate system, wherein the X coordinate of each of the series of the points corresponds to the number of network connections corresponding to each of the average throughputs in the set and the Y coordinate of each of the series of the points corresponds to the average throughputs per network connection in the set;

connecting the series of points to form a curve; and

identifying the target number of network connections using the curve.

5. The method of claim 1 , wherein identifying the target number of network connections comprises:

determining a function of average throughput per network connection with respect to a quantity of network connections provided by the source server; and

fitting the set of average throughputs against the number of network connections corresponding to each of the average throughputs in the set to obtain variables of the function.

6. A system for optimizing performance of a source server configured to facilitate migration of data items in a data directory through network connections provided by the source server to a destination server, the system comprising one or more processors configured to perform:

determining a set of average throughputs per network connection provided by the source server for migrating the data items in the data directory to the destination server, each of the average throughputs in the set corresponding to a unique number of network connections provided by the source server, wherein determining an average throughput of a particular number of network connections provided by the source server comprises:

through the particular number of network connections provided by the source server, sending a number of requests for the source server to process an amount of data;

for each of the particular number of network connections provided by the source server:

obtaining response time for which the source server processed the amount of data sent through the network connection; and

computing a throughput of the network connection based on the response time; and

computing an average throughput per network connection for the particular number of network connections by dividing a sum of the throughput of each of the particular number of network connections provided by the source server by the quantity of the particular number of network connections;

identifying a target number of network connections corresponding to a specific change in average throughput per connection based on a change in the number of network connections provided by the source server;

setting the target number of network connections for managing network connections provided by the source server; and

implementing, by a migration controller, migration of the data items in the data directory from the source server to the destination system using the target number of network connections.

7. The system of claim 6 , wherein the target number of network connections is identified such that a decrease in average throughput per connection is greatest from the target number to target number plus one.

8. The system of claim 6 , wherein the amount of the data requested to be processed for each network connection is the same.

9. The system of claim 6 , wherein identifying the target number of network connections comprises:

plotting a series of points in a Cartesian coordinate system, wherein the X coordinate of each of the series of the points corresponds to the number of network connections corresponding to each of the average throughputs in the set and the Y coordinate of each of the series of the points corresponds to the average throughputs per network connection in the set;

connecting the series of points to form a curve; and

identifying the target number of network connections using the curve.

10. The method of claim 6 , wherein identifying the target number of network connections comprises:

determining a function of average throughput per network connection with respect to a quantity of network connections provided by the source server; and

fitting the set of average throughputs against the number of network connections corresponding to each of the average throughputs in the set to obtain variables of the function.

Assignments (11)
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Feb 19, 2025
From: SKYKICK, LLC; EFOLDER, INC.
To: BANK OF AMERICA, N.A.
Reel/Frame 070268/0489 →
MERGER Recorded Sep 19, 2024
From: PROJECT JOULE MERGER SUB, INC.
To: SKYKICK GLOBAL HOLDINGS, INC.
Reel/Frame 068636/0471 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2024
From: MS PRIVATE CREDIT ADMINISTRATIVE SERVICES, LLC
To: SKYKICK, LLC
Reel/Frame 068545/0172 →
SECURITY INTEREST Recorded Sep 2, 2021
From: SKYKICK, LLC
To: MS PRIVATE CREDIT ADMINISTRATIVE SERVICES, LLC
Reel/Frame 057372/0544 →
RELEASE OF SECURITY INTEREST Recorded Sep 2, 2021
From: SKYKICK, INC.
To: AVENUE VENTURE OPPORTUNITIES FUND, LP
Reel/Frame 057374/0965 →
CHANGE OF NAME Recorded Sep 1, 2021
From: SKYKICK, INC.
To: SKYKICK, LLC
Reel/Frame 057395/0001 →
SECURITY AGREEMENT Recorded Jan 31, 2020
From: SKYKICK, INC.
To: AVENUE VENTURE OPPORTUNITIES FUND, LP
Reel/Frame 051763/0466 →
RELEASE OF SECURITY INTEREST Recorded Jan 30, 2020
From: VENTURE LENDING & LEASING VIII, INC.; VENTURE LENDING & LEASING IX, INC.; VENTURE LENDING & LEASING VII, INC.
To: SKYKICK, INC.
Reel/Frame 051761/0604 →
SECURITY INTEREST Recorded Dec 7, 2018
From: SKYKICK, INC.
To: VENTURE LENDING & LEASING IX, INC.; VENTURE LENDING & LEASING VIII, INC.
Reel/Frame 048918/0322 →
SECURITY INTEREST Recorded Apr 4, 2017
From: SKYKICK, INC.
To: VENTURE LENDING & LEASING VII, INC.; VENTURE LENDING & LEASING VIII, INC.
Reel/Frame 041849/0862 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 2, 2016
From: DENNIS, JOHN; RICHMAN, EVAN; SCHWARTZ, TODD; YOUNGE, BRADLEY; PANSE, MANOJ GANESH
To: SKYKICK, INC.
Reel/Frame 040501/0816 →
Continuity (2)
Provisional Application 62147525 · Apr 14, 2015
Related Publication 20160308726A1 · Oct 20, 2016