US2023091261A1PendingUtilityA1
Orchestration and scheduling of services
Assignee: MICROSOFT TECHNOLOGY LICENSING LLCPriority: Aug 14, 2019Filed: Nov 21, 2022Published: Mar 23, 2023
Est. expiryAug 14, 2039(~13 yrs left)· nominal 20-yr term from priority
Inventors:Robert L. GoodwinJanaina Barreiro Gambaro BuenoSitaramaswamy V. LankaJavier Garcia FlynnPedram Faghihi RezaeiKarthik Pattabiraman
G06N 20/00G06F 9/5088G06F 17/18G06F 9/5038G06F 9/4881G06F 9/5077
66
PatentIndex Score
0
Cited by
0
References
0
Claims
Abstract
This document relates to orchestration and scheduling of services. One example method involves obtaining dependency information for an application. The dependency information can represent data dependencies between individual services of the application. The example method can also involve identifying runtime characteristics of the individual services and performing automated orchestration of the individual services into one or more application processes based at least on the dependency information and the runtime characteristics.
Claims
exact text as granted — not AI-modified1 - 20 . (canceled)
21 . A method performed on a computing device, the method comprising:
evaluating execution logs for an application having a plurality of services to identify different critical paths of the application during multiple previous executions of the application; identifying a statistical critical path for the application based at least on frequency of occurrence of the different critical paths in the execution logs, wherein the execution logs identify at least one other critical path of the application other than the statistical critical path and the statistical critical path determines overall latency of the application more frequently than the at least one other critical path; and scheduling individual services of the plurality of services of the application based at least on whether the individual services occur on the statistical critical path.
22 . The method of claim 21 , wherein the scheduling comprises assigning scheduling priorities to threads allocated to the individual services.
23 . The method of claim 22 , wherein the scheduling comprises:
prioritizing specific services that occur on the statistical critical path above one or more other services that do not occur on the statistical critical path.
24 . The method of claim 23 , further comprising:
determining respective time distances of the one or more other services from the statistical critical path; and prioritizing the one or more other services based at least on the respective time distances of the one or more other services from the statistical critical path.
25 . The method of claim 24 , wherein determining the respective time distances of the one or more other services from the statistical critical path comprises:
based at least on previous execution times of the one or more other services, determining the respective time distances as respective amounts of time that the one or more other services would have had to run before appearing in the statistical critical path.
26 . The method of claim 21 , wherein the statistical critical path comprises a particular path through the application that, over the multiple previous executions, most frequently is the critical path of the application.
27 . A system comprising:
a processing unit; and a computer-readable storage medium storing computer-readable instructions which, when executed by the processing unit, cause the system to: identify different critical paths of an application during multiple previous executions of the application, the different critical paths determining overall latency of the application during different executions of the application; identifying, from the different critical paths of the application, a statistical critical path of the application that determines overall latency of the application more frequently than other critical paths of the application; and scheduling individual services of the application based at least on whether the individual services occur on the statistical critical path.
28 . The system of claim 27 , wherein the computer-readable instructions, when executed by the processing unit, cause the system to:
access a dependency graph of the application; and assign scheduling priorities to the individual services based at least on distances of the individual services from a root node of the dependency graph.
29 . The system of claim 28 , wherein the computer-readable instructions, when executed by the processing unit, cause the system to:
identify at least two different services in a particular layer of the dependency graph; and assign a relatively higher scheduling priority to a particular service in the particular layer that occurs on the statistical critical path and a relatively lower scheduling priority to another service in the particular layer that does not occur on the statistical critical path.
30 . The system of claim 29 , wherein the computer-readable instructions, when executed by the processing unit, cause the system to:
assign higher priorities to first services in a first layer that is relatively closer to the root node than the particular layer; and assign lower priorities to second services in a second layer that is relatively further from the root node than the particular layer.
31 . The system of claim 27 , wherein the computer-readable instructions, when executed by the processing unit, cause the system to:
identify at least two different services of the application for which input data is ready; and schedule a first service of the at least two different services that is on the statistical critical path before a second service of the at least two different services that is not on the statistical critical path.
32 . The system of claim 31 , wherein the computer-readable instructions, when executed by the processing unit, cause the system to:
schedule a third service of the at least two different services before a fourth service of the at least two different services based at least on the third service having occurred more frequently in the different critical paths of the application than the fourth service.
33 . The system of claim 31 , wherein the computer-readable instructions, when executed by the processing unit, cause the system to:
schedule a third service of the at least two different services before a fourth service of the at least two different services based at least on the third service being relatively closer to the statistical critical path of the application than the fourth service.
34 . The system of claim 27 , wherein the individual services are scheduled to run on at least two different computing clusters.
35 . A computer-readable storage media storing executable instructions which, when executed by a processing unit, cause the processing unit to perform acts comprising:
identifying a statistical critical path for an application, wherein the statistical critical path determines overall latency of the application more frequently than at least one other critical path of the application; and scheduling individual services of the application based at least on whether the individual services occur on the statistical critical path.
36 . The computer-readable storage media of claim 35 , wherein the scheduling the individual services is further based at least on where the individual services occur in a dependency graph of the application.
37 . The computer-readable storage media of claim 36 , wherein the scheduling the individual services is further based at least on proximity of the individual services to a root node of the dependency graph.
38 . The computer-readable storage media of claim 37 , wherein scheduling the individual services comprises determining distances of the individual services from the statistical critical path and scheduling the individual services based at least on the distances.
39 . The computer-readable storage media of claim 37 , wherein scheduling the individual services is based at least on an expected resource conflict.
40 . The computer-readable storage media of claim 39 , wherein the scheduling comprises preferentially scheduling a first service to complete before a second service based on expected usage of a particular resource by the first service and the second service.Join the waitlist — get patent alerts
Track US2023091261A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.