IP Library Granted Patent US 8,819,238
Granted Patent B2
US 8,819,238 · App. 13/466,061 · Granted Aug 26, 2014

Application hosting in a distributed application execution system

Inventors: Kenneth Ashcraft (Palo Alto, CA); Jon P. McAlister (Millbrea, CA); Kevin A. Gibbs (San Francisco, CA); Ryan C. Barrett (Palo Alto, CA)
Assignee: Google Inc.
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 8,819,238
App. No.
13/466,061
Granted
Aug 26, 2014
Kind
B2
Abstract

In an application execution system having a plurality of application servers and an application master in an application execution system, the application master stores a plurality of applications, including a respective application, in a library for distribution among the application servers, adds a first instance of the respective application from the library to a respective application server for execution, and obtains usage information of one or more applications added to the application servers. In accordance with the usage information, the application master performs one of a predefined set of actions that includes: adding a second instance of the respective application to the plurality of application servers; and removing the first instance of the respective application from the respective application server.

Claims (55)

1. A method of operating a plurality of application servers and an application master in an application execution system, the method comprising:

at the application master:

storing a plurality of applications, including a respective application, in a library for distribution among the application servers;

adding a first instance of the respective application from the library to a respective application server for execution;

obtaining usage information of one or more applications added to the application servers; and

in accordance with the usage information, performing one of a predefined set of actions that includes:

adding a second instance of the respective application to the plurality of application servers; and

removing the first instance of the respective application from the respective application server.

2. The method of claim 1 , wherein the predefined set of actions further includes retaining the first instance of the respective application on the respective application server.

3. The method of claim 1 , wherein the second instance of the respective application is added to non-volatile storage of one or more application servers in the plurality of application servers.

4. The method of claim 1 , wherein removing the first instance of the respective application is based at least in part on a predefined order of removal.

5. The method of claim 4 , wherein the predefined order of removal includes removing a least-recently-used application instance.

6. The method of claim 1 , further comprising:

maintaining a rate limit on increasing or decreasing the number of applications added to or removed from the application servers, over a predefined period of time.

7. The method of claim 1 , wherein the usage information includes usage information of an application distinct from the respective application.

8. The method of claim 1 , wherein the usage information includes:

resource usage information concerning the one or more applications, and

resource usage information concerning the application servers.

9. A server system, comprising:

one or more processors;

memory; and

one or more programs, wherein the one or more programs are stored in the memory and configured to be executed by the one or more processors, the one or more programs including instructions for:

storing a plurality of applications, including a respective application, in a library for distribution among the application servers;

adding a first instance of the respective application from the library to a respective application server for execution;

obtaining usage information of one or more applications added to the application servers; and

in accordance with the usage information, performing one of a predefined set of actions that includes:

adding a second instance of the respective application to the plurality of application servers; and

removing the first instance of the respective application from the respective application server.

10. The system of claim 9 , wherein the predefined set of actions further includes retaining the first instance of the respective application on the respective application server.

11. The system of claim 9 , wherein the second instance of the respective application is added to non-volatile storage of one or more application servers in the plurality of application servers.

12. The system of claim 9 , wherein removing the first instance of the respective application is based at least in part on a predefined order of removal.

13. The system of claim 12 , wherein the predefined order of removal includes removing a least-recently-used application instance.

14. The system of claim 9 , the one or more programs further including instruction for:

maintaining a rate limit on increasing or decreasing the number of applications added to or removed from the application servers, over a predefined period of time.

15. The system of claim 9 , wherein the usage information includes usage information of an application distinct from the respective application.

16. The system of claim 9 , wherein the usage information includes:

resource usage information concerning the one or more applications, and

resource usage information concerning the application servers.

17. A non-transitory computer readable storage medium storing one or more programs, the one or more programs comprising instructions, which when executed by a computer system with one or more processors, cause the computer system to:

store a plurality of applications, including a respective application, in a library for distribution among the application servers;

add a first instance of the respective application from the library to a respective application server for execution;

obtain usage information of one or more applications added to the application servers; and

in accordance with the usage information, perform one of a predefined set of actions that includes:

add a second instance of the respective application to the plurality of application servers; and

remove the first instance of the respective application from the respective application server.

18. The non-transitory computer readable storage medium of claim 17 , wherein the predefined set of actions further includes retaining the first instance of the respective application on the respective application server.

19. The non-transitory computer readable storage medium of claim 17 , wherein the second instance of the respective application is added to non-volatile storage of one or more application servers in the plurality of application servers.

20. The non-transitory computer readable storage medium of claim 17 , wherein removing the first instance of the respective application is based at least in part on a predefined order of removal.

21. The non-transitory computer readable storage medium of claim 20 , wherein the predefined order of removal includes removing a least-recently-used application instance.

22. The non-transitory computer readable storage medium of claim 17 , further including instruction which cause the computer system to:

maintain a rate limit on increasing or decreasing the number of applications added to or removed from the application servers, over a predefined period of time.

23. The non-transitory computer readable storage medium of claim 17 , wherein the usage information includes usage information of an application distinct from the respective application.

24. The non-transitory computer readable storage medium of claim 17 , wherein the usage information includes:

resource usage information concerning the one or more applications, and

resource usage information concerning the application servers.

Assignments (2)
CHANGE OF NAME Recorded Oct 2, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044277/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 12, 2016
From: ASHCRAFT, KENNETH; MCALISTER, JON; GIBBS, KEVIN A.; BARRETT, RYAN C.
To: GOOGLE INC.
Reel/Frame 037465/0762 →
Continuity (3)
Continuation 13212142 · Aug 17, 2011
Continuation 12331351 · Dec 9, 2008
Related Publication 20120265804A1 · Oct 18, 2012