Latency-aware host-agnostic runtime
AssigneeAmazon Technologies, Inc.
InventorRonald Widharta Sunarno
Life of this patent
Estimating the term…
Abstract
Application source code that includes notation indicating a latency level between methods is evaluated. Based in part on the latency level, scores for method dependencies are calculated. A set of packages is generated for the methods in accordance with a clustering strategy that is based at least in part on the scores. The set of packages is then deployed to at least one host in accordance with an affinity threshold.
Claims20
A computer-implemented method, comprising:
- under the control of one or more computer systems configured with executable instructions,
- obtaining application source code for a software application to be deployed in a computing environment;
- identifying a method caller and a called method within the application source code, the method caller being a method from which the called method is called;
- determining, from the application source code, that the called method, as a result of a call from the method caller, is to execute in accordance with latency criteria;
- determining an affinity value for the called method based at least in part on the latency criteria;
- calculating, based at least in part on the affinity value, an affinity score between the method caller and the called method, the affinity score indicating a target proximity between packages deployed in the computing environment;
- outputting a first package for the method caller and a second package for the called method, the first package including the affinity score between the method caller and the called method;
- and
- deploying the first package and the second package in accordance with the affinity score.
A system, comprising at least one computing device having one or more processors and memory including instructions that implement one or more services, wherein the one or more services:
- obtain, from application source code, a first method and a second method;
- as a result of a determination that the second method is dependent on the first method,
- determine, from latency notation present in the application source code, an affinity level between the first method and the second method;
- calculate, based at least in part on the affinity level, an affinity score that indicates a target proximity between the first method and the second method;
- output a first package including the first method and a second package including the second method;
- record the affinity score between the first method and the second method as a score between the first package and the second package;
- allocate one or more hosts to receive the first and second packages;
- and
- deploy the first package and the second package to the one or more hosts, in accordance with an affinity threshold.
A set of one or more non-transitory computer-readable storage media having stored thereon executable instructions that, as a result of being executed by one or more processors of a computer system, cause the computer system to:
- evaluate application source code that includes notation that indicates a latency level between methods;
- compute, based at least in part on the latency level, affinity scores for method dependencies in the application source code;
- generate, in accordance with a clustering strategy that is based at least in part on the affinity scores, a set of packages, wherein the affinity score indicates a target proximity between methods in the set of packages;
- and
- deploy, via an executor, in accordance with an affinity threshold, the set of packages to at least one host.
Dependencies are inferred from the claim text.