IP Library › Granted Patent US 11,063,881
Granted Patent B1
US 11,063,881 · App. 17/087,442 · Granted Jul 13, 2021

Methods and apparatus for network delay and distance estimation, computing resource selection, and related techniques

Inventors: Karthigesu Vijayasuganthan (Ontario, CA); Sorin Stoian (Ontario, CA); Shervin Shirmohammadi (Ottawa, CA); Shady Mohammed (Ontario, CA); Alaa Eddin Alchalabi (Ontario, CA)
Assignee: Swarmio Inc.
H04L47/762G06K9/6256G06K9/6262G06N3/08G06N20/00H04L47/748H04L47/781
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 11,063,881
App. No.
17/087,442
Granted
Jul 13, 2021
Kind
B1
Abstract

The techniques described herein relate to methods, apparatus, and computer readable media configured to select a computing resource from a plurality of computing resources to perform a computing process. A request is received from a remote computing device to perform the computing process. A first set of estimated metrics is accessed that includes an estimated metric for each computing resource and the first remote computing device. The second data is processed using a machine learning algorithm to select a candidate computing resource to perform the process. The machine learning algorithm selects the candidate computing resource based on a second estimated metric between at least one second remote computing device and an associated computing resource from the plurality of computing resources performing a second computing process for the at least one second remote computing device, and a capacity of each computing resource of the plurality of computing resources.

Claims (84)

1. A computerized method for selecting a computing resource from a plurality of computing resources to perform a computing process, the method comprising:

receiving, from a first remote computing device, first data indicative of a request to perform the computing process;

accessing second data indicative of a first set of estimated metrics comprising, for each computing resource of the plurality of computing resources, a first estimated metric between the first remote computing device and the computing resource, wherein:

the first estimated metric comprises an estimated delay between the first remote computing device and the computing resource or an estimated distance between the first remote computing device and the computing resource; and

the first estimated metric is computed using a trained machine learning model that takes as input identifying information for the first remote computing device and the computing resource to determine the first estimated metric; and

processing the second data using a machine learning algorithm to select a candidate computing resource from the plurality of computing resources to perform the process, wherein:

the machine learning algorithm selects the candidate computing resource based on:

a second estimated metric between at least one second remote computing device and an associated computing resource from the plurality of computing resources performing a second computing process for the at least one second remote computing device; and

a capacity of each computing resource of the plurality of computing resources; and

processing the second data using the machine learning algorithm comprises processing the second data using a q-learning algorithm, comprising:

executing, for at least a subset of the plurality of computing resources, a reward function to determine a reward value for each computing resource of the subset of computing resources, comprising computing, based on the reward function, data indicative of a quality for each computing resource of the subset of computing resources; and

selecting the candidate computing resource from the subset of computing resources based on the determined reward values.

2. The method of claim 1 , further comprising determining the subset of computing resources by eliminating any computing resources of the plurality of computing resources without capacity to perform the computing process from consideration by the reinforcement learning algorithm.

3. The method of claim 1 , wherein:

the first set of estimated metrics comprise a first set of estimated distances;

the second estimated metric comprises a second estimated distance; and

selecting the candidate computing resource based on the second estimated metric between the at least one second remote computing device and the associated computing resource comprises:

selecting the candidate computing resource by determining (a) a first estimated distance between the remote computing device and the candidate computing resource is less than (b) a second estimated distance between the at least one second remote computing device and the associated computing resource.

4. The method of claim 1 , wherein:

the first set of estimated metrics comprise a first set of estimated delays;

the second estimated metric comprises a second estimated delay; and

selecting the candidate computing resource based on the second estimated metric between the at least one second remote computing device and the associated computing resource comprises:

selecting the candidate computing resource by determining (a) a first estimated delay between the remote computing device and the candidate computing resource is less than (b) a second estimated delay between the at least one second remote computing device and the associated computing resource.

5. The method of claim 1 , wherein processing the second data using the machine learning algorithm comprises:

processing the second data using a plurality of machine learning algorithms to generate a plurality of sets of reward values for the plurality of computing resources; and

analyzing the sets of reward values to select the candidate computing resource.

6. The method of claim 5 , wherein selecting the candidate computing resource from the subset of computing resources based on the determined reward values comprises determining the candidate computing resource has a highest reward value among the sets of reward values.

7. The method of claim 5 , wherein selecting the candidate computing resource from the subset of computing resources based on the determined reward values comprises:

normalizing the sets of reward values to generate normalized sets of reward values; and

determining the candidate computing resource has a highest reward value among the normalized sets of reward values.

8. The method of claim 1 , wherein accessing the second data indicative of the first set of estimated metrics comprises:

computing, for each computing resource of the plurality of computing resources, a first estimated delay between the remote computing device and the computing resource by executing the trained machine learning model, comprising:

inputting first identifying information for the remote computing device and second identifying information for the computing resource to the trained machine learning model; and

receiving, from the trained machine learning model, the first estimated delay.

9. The method of claim 8 , wherein:

inputting the first identifying information comprises inputting a first IP address for the remote computing device;

inputting the second identifying information comprises inputting a second IP address for the computing resource; and

receiving the first estimated delay comprises receiving, from the trained machine learning model, an estimated round trip time between the remote computing device and the computing resource.

10. The method of claim 9 , wherein inputting the first and second IP addresses comprises:

extracting, for each of the first IP address and the second IP address, one or more of:

a geographical location;

an autonomous system;

a domain name server;

a virtual private network;

a continent name; and

a country name,

to generate first extracted location features for the remote computing device and second extracted location features for the computing resource.

11. The method of claim 10 , further comprising encoding (a) one or more features of the first extracted location features and (b) one or more features of the second extracted location features from a non-numerical value to a numerical value.

12. The method of claim 10 , further comprising:

computing, based on (a) one or more features of the first extracted location features and (b) the second extracted location features, a geographical distance between the remote computing device and the computing resource.

13. The method of claim 8 , wherein executing the trained machine learning model comprises:

executing a first trained machine learning model to generate a third estimated metric, wherein the first trained machine learning model was trained on local delay data;

executing a second trained machine learning model to generate a fourth estimated metric, wherein the second trained machine learning model was trained on continental delay data; and

generating the first estimated metric based on the third estimated metric and the fourth estimated metric.

14. The method of claim 1 , wherein:

the first set of estimated metrics comprise a first set of estimated delays; and

the second estimated metric comprises a second estimated delay.

15. The method of claim 1 , wherein:

the first set of estimated metrics comprise a first set of estimated distances; and

the second estimated metric comprises a second estimated distance.

16. A non-transitory computer-readable media comprising instructions that, when executed by one or more processors on a computing device, are operable to cause the one or more processors to select a computing resource from a plurality of computing resources to perform a computing process, comprising:

receiving, from a first remote computing device, first data indicative of a request to perform the computing process;

accessing second data indicative of a first set of estimated metrics comprising, for each computing resource of the plurality of computing resources, a first estimated metric between the first remote computing device and the computing resource, wherein:

the first estimated metric comprises an estimated delay between the first remote computing device and the computing resource or an estimated distance between the first remote computing device and the computing resource; and

the first estimated metric is computed using a trained machine learning model that takes as input identifying information for the first remote computing device and the computing resource to determine the first estimated metric; and

processing the second data using a machine learning algorithm to select a candidate computing resource from the plurality of computing resources to perform the process, wherein:

the machine learning algorithm selects the candidate computing resource based on:

a second estimated metric between at least one second remote computing device and an associated computing resource from the plurality of computing resources performing a second computing process for the at least one second remote computing device; and

a capacity of each computing resource of the plurality of computing resources; and

processing the second data using the machine learning algorithm comprises processing the second data using a q-learning algorithm, comprising:

executing, for at least a subset of the plurality of computing resources, a reward function to determine a reward value for each computing resource of the subset of computing resources, comprising computing, based on the reward function, data indicative of a quality for each computing resource of the subset of computing resources; and

selecting the candidate computing resource from the subset of computing resources based on the determined reward values.

17. A system comprising a memory storing instructions, and a processor configured to execute the instructions to select a computing resource from a plurality of computing resources to perform a computing process by performing:

receiving, from a first remote computing device, first data indicative of a request to perform the computing process;

accessing second data indicative of a first set of estimated metrics comprising, for each computing resource of the plurality of computing resources, a first estimated metric between the first remote computing device and the computing resource, wherein:

the first estimated metric comprises an estimated delay between the first remote computing device and the computing resource or an estimated distance between the first remote computing device and the computing resource; and

the first estimated metric is computed using a trained machine learning model that takes as input identifying information for the first remote computing device and the computing resource to determine the first estimated metric; and

processing the second data using a machine learning algorithm to select a candidate computing resource from the plurality of computing resources to perform the process, wherein:

the machine learning algorithm selects the candidate computing resource based on:

a second estimated metric between at least one second remote computing device and an associated computing resource from the plurality of computing resources performing a second computing process for the at least one second remote computing device; and

a capacity of each computing resource of the plurality of computing resources; and

processing the second data using the machine learning algorithm comprises processing the second data using a q-learning algorithm, comprising:

executing, for at least a subset of the plurality of computing resources, a reward function to determine a reward value for each computing resource of the subset of computing resources, comprising computing, based on the reward function, data indicative of a quality for each computing resource of the subset of computing resources; and

selecting the candidate computing resource from the subset of computing resources based on the determined reward values.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 15, 2021
From: VIJAYASUGANTHAN, KARTHIGESU; STOIAN, SORIN; SHIRMOHAMMADI, SHERVIN; MOHAMMED, SHADY; ALCHALABI, ALAA EDDIN
To: SWARMIO INC.
Reel/Frame 054931/0772 →
Cited By (12)
US 12,236,974 US 12,248,572 US 12,321,783 US 12,323,341 US 12,339,962 US 12,348,489 US 12,382,116 US 12,437,239 US 12,438,772 US 12,574,305 US 12,597,033 US 12,641,028