×

Adjusting variable limit on concurrent code executions

  • US 10,102,040 B2
  • Filed: 06/29/2016
  • Issued: 10/16/2018
  • Est. Priority Date: 06/29/2016
  • Status: Expired due to Fees
First Claim
Patent Images

1. A system to provide scaling of computational capacity on an on-demand code execution environment, the system comprising:

  • a non-transitory data store configured to store one or more program codes associated with a client of the on-demand code execution environment;

    one or more hardware computing devices executing a frontend service through specific computer-executable instructions, said frontend service in communication with the non-transitory data store and configured to at least;

    receive a request to execute a program code on the on-demand code execution environment, the request including a client ID identifying the client associated with the program code, the client associated with a set of virtual machine instance managers configured to acquire compute capacity on behalf of the client;

    calculate a first hash value by applying a hash function on the client ID included in the request;

    identify, based on the calculated first hash value, a first virtual machine instance manager on a ring of virtual machine instance managers available on the on-demand code execution environment, the first virtual machine instance manager being in the set of virtual machine instance managers configured to acquire compute capacity on behalf of the client;

    request the first virtual machine instance manager to acquire compute capacity for executing the program code on behalf of the client;

    receive a throttling response from the first virtual machine instance manager, the throttling response indicating that the first virtual machine instance manager is currently overloaded with other code executions being performed on behalf of the client;

    determine whether a maximum concurrency limit of the client is greater than a current concurrency limit of the client, the maximum concurrency limit of the client defining a range of concurrency limits on a number of concurrent code executions allowed to be performed on the on-demand code execution environment on behalf of the client, and the current concurrency limit of the client indicating a current limit on the number of concurrent code executions allowed to be performed on the on-demand code execution environment on behalf of the client;

    in response to determining that the maximum concurrency limit of the client is greater than the current concurrency limit of the client, adjust the current concurrency limit of the client such that at least one additional virtual machine instance manager is assigned to the client, the at least one additional virtual machine instance manager including a second virtual machine instance manager; and

    cause the program code to be executed on behalf of the client on a virtual machine instance acquired by the second virtual machine instance manager.

View all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×