Browse Prior Art Database

Method and System for Auto-scaling of Cloud Services using Causal Ordering and an Application Lifecycle

IP.com Disclosure Number: IPCOM000244600D
Publication Date: 2015-Dec-24
Document File: 4 page(s) / 178K

Publishing Venue

The IP.com Prior Art Database

Abstract

A method and system is disclosed for auto-scaling of cloud services using causal ordering and an application lifecycle.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 52% of the total text.

Page 01 of 4

Method and System for Auto - -scaling of Cloud Services using Causal Ordering and an

scaling of Cloud Services using Causal Ordering and an

Application Lifecycle

In cloud services, scalability and elasticity is a key feature. However, auto-scaling an application hosted on the cloud is a challenge. Currently, scaling services may not be able to dynamically determine resource needs of an application . Using a static policy and static resource quantification mechanisms for scaling may lead to extra costs .

Disclosed is a method and system for auto-scaling of cloud services using causal ordering and an application lifecycle. Fig. 1 illustrates a flow diagram of a method for auto-scaling of cloud services using casual ordering and an application lifecycle .

Figure 1

As illustrated in Fig. 1, the method enables scaling of a cloud service based on one or more of, but not limited to, a dynamic state with respect to resource allocation/de-allocation, events, a point of execution in the application lifecycle, and billing constraints. For auto-scaling, an application lifecycle profiler is used which includes a static application lifecycle profiler and a dynamic application lifecycle profiler .

The static application lifecycle profiler includes a static code analyzer . The static code analyzer, from start to end of a program, builds a control flow graph, determines

1


Page 02 of 4

resource allocation, usage, and de-allocation events, determine order (partial or total) among different events, associate events to each method or library, and merges all events to a temporal order. Each recorded event includes a relative point of execution from start of the program, size of resource allocated/de-allocated/used, and local or remote resource. The resources include one or more of, but not limited to, memory, disk, Central Processing Unit (CPU), network Input/Output (I/O), database connections, and locks.

For C/C++ (programs with explicit constructs to allocate/de-allocate memory), the static code analyzer determines the point of execution and order between memory allocation events. Thereafter, the amount of memory allocated/de-allocated is determined. For Java/Python (programs that do not have explicit constructs to de-allocate memory), the static code analyzer determines if there are explicit calls to garbage collectors . If yes, then that is recorded as an event. Thereafter, size of memory allocated/de-allocated is determined. The static code analyzer also determines disk I/O calls (remote/local), file...