Detecting impedance mismatches due to cross-service calls
First Claim
1. A system to analyze code executable on an on-demand code execution system to detect an impedance mismatch with an invoked network-accessible service, the system comprising:
- a hardware data store storing executable code submitted to the on-demand code execution system by a user device, the executable code including an invocation of a first network-accessible service; and
a computing device comprising a hardware processor, the computing device in communication with the hardware data store and configured to;
obtain an expected execution rate for the executable code on the on-demand code execution system;
conduct a static analysis of the executable code, independent of execution of the executable code, to identify, within the executable code, portions of the executable code that, when executed by the on-demand code execution system, would cause the on-demand code execution system to transmit a set of requests to invoke a first network-accessible service in communication with the on-demand code execution system via a network;
from at least the expected execution rate for the executable code and a number of requests within the set of requests to invoke the first network-accessible service that would be caused by execution of the executable code on the on-demand code execution system, determine an expected invocation rate for the first network-accessible service when executing the executable code on the on-demand code execution system at the expected execution rate;
identify an invocation capacity for the first network-accessible service;
compare the expected invocation rate for the first network-accessible service to the invocation capacity for the first network-accessible service to determine that the expected invocation rate exceeds the invocation capacity; and
transmit an indication that that the expected invocation rate exceeds the invocation capacity.
1 Assignment
0 Petitions
Accused Products
Abstract
Systems and methods are described for conducting static analysis of code invoking network-based services to identify, without requiring execution of the code, an impedance mismatch between an expected execution rate of the code and an invocation capacity of a service invoked within the code. A system is provided that may analyze code to detect both direct invocations of services, as well as indirect invocations caused by the direct invocations. The system can utilize information regarding directly or indirectly invoked services to determine whether an expected invocation rate of such services will exceed invocation capacity for the services. In some instances, the system can traverse a “call graph” of all services invoked by code either directly or indirectly to identify impedance mismatches through multiple levels of indirection.
-
Citations
23 Claims
-
1. A system to analyze code executable on an on-demand code execution system to detect an impedance mismatch with an invoked network-accessible service, the system comprising:
-
a hardware data store storing executable code submitted to the on-demand code execution system by a user device, the executable code including an invocation of a first network-accessible service; and a computing device comprising a hardware processor, the computing device in communication with the hardware data store and configured to; obtain an expected execution rate for the executable code on the on-demand code execution system; conduct a static analysis of the executable code, independent of execution of the executable code, to identify, within the executable code, portions of the executable code that, when executed by the on-demand code execution system, would cause the on-demand code execution system to transmit a set of requests to invoke a first network-accessible service in communication with the on-demand code execution system via a network; from at least the expected execution rate for the executable code and a number of requests within the set of requests to invoke the first network-accessible service that would be caused by execution of the executable code on the on-demand code execution system, determine an expected invocation rate for the first network-accessible service when executing the executable code on the on-demand code execution system at the expected execution rate; identify an invocation capacity for the first network-accessible service; compare the expected invocation rate for the first network-accessible service to the invocation capacity for the first network-accessible service to determine that the expected invocation rate exceeds the invocation capacity; and transmit an indication that that the expected invocation rate exceeds the invocation capacity. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A computer-implemented method to analyze code executable on an on-demand code execution system comprising:
-
obtaining from a user device executable code submitted for execution on the on-demand code execution system; obtaining an expected execution rate for the executable code on the on-demand code execution system; conducting a static analysis of the executable code, independent of execution of the executable code, to identify, within the executable code, portions of the executable code that, when executed by the on-demand code execution system, would cause the on-demand code execution system to transmit a set of requests to invoke a first network-accessible service in communication with the on-demand code execution system via a network; from at least the expected execution rate for the executable code and a number of requests within the set of requests to invoke the first network-accessible service that would be caused by execution of the executable code on the on-demand code execution system, determining an expected invocation rate for the first network-accessible service when executing the executable code on the on-demand code execution system at the expected execution rate; identifying an invocation capacity for the first network-accessible service; comparing the expected invocation rate for the first network-accessible service to the invocation capacity for the first network-accessible service to determine that the expected invocation rate exceeds the invocation capacity; and transmitting an indication that that the expected invocation rate exceeds the invocation capacity. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14)
-
-
15. Non-transitory computer-readable media comprising executable instructions that, when executed on a computing system, cause the computing system to analyze code executable on an on-demand code execution system by at least:
-
obtaining from a user device executable code submitted for execution on an on-demand code execution system; obtaining an expected execution rate for the executable code on the on-demand code execution system; conducting a static analysis of the executable code, independent of execution of the executable code, to identify, within the executable code, portions of the executable code that, when executed by the on-demand code execution system, would cause the on-demand code execution system to transmit a set of requests to invoke a first network-accessible service in communication with the on-demand code execution system via a network; from at least the expected execution rate for the executable code and a number of requests within the set of requests to invoke the first network-accessible service that would be caused by execution of the executable code on the on-demand code execution system, determining an expected invocation rate for the first network-accessible service when executing the executable code on the on-demand code execution system at the expected execution rate; identifying an invocation capacity for the first network-accessible service; comparing the expected invocation rate for the first network-accessible service to the invocation capacity for the first network-accessible service to determine that the expected invocation rate exceeds the invocation capacity; and transmitting an indication that that the expected invocation rate exceeds the invocation capacity. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23)
-
Specification