Browse Prior Art Database

Differential resource allocation in a system containing a database

IP.com Disclosure Number: IPCOM000236009D
Publication Date: 2014-Apr-02
Document File: 4 page(s) / 119K

Publishing Venue

The IP.com Prior Art Database

Abstract

Disclosed is a method, applicable to performance-tuning systems, by which the run-time systems determine the dependencies among the Application Thread Blocks (ATBs), and then differentially allocate resources such that the overall performance is optimized in light of the dependencies.

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

Page 01 of 4

Differential resource allocation in a system containing a database

Today's performance-tuning systems are built on advanced hardware and analytical platforms that can process a huge amount of data in a short period. Systematic tuning follows these steps:


1. Assess the problem and establish numeric values that categorize acceptable

behavior. An example is specifying the Service Level Agreement (SLA) or the expected response time for an application query. If the response time exceeds the assigned value, then the query is classified as poorly performing.


2. Measure the performance of the system before modification


3. Identify the part of the system that is critical for improving the performance.

This is called the bottleneck.

4. Modify that part of the system to remove the bottleneck 5. Measure the performance of the system after modification 6. If the modification makes the performance better, adopt it. If the modification makes the performance worse, then return it to its previous state.

Existing tuning systems do not take into consideration the dependency between various processes during the current execution of the tasks and, more specifically, the dependencies between tasks (i.e. which tasks must be others can be

completed). A method is needed to analyze the existing dependencies between

various tasks as well as between various processes (i.e. thread) under a particular task(s).

Application Thread Blocks (ATBs) are groups of threads/processes that run together

within an application. Often, start calls and terminate calls denote these ATBs, but the ATBs can be threads/processes in a given application or run consistently adjacent to each other. Thus, the Operating System (OS) can note average and/or expected run times of given ATBs.

The novel contribution is a method by which the run-time systems determine the dependencies among the ATBs, and then differentially allocate resources such that the overall performance is optimized in light of the dependencies. For example, consider a simple case with three ATBs, A, B and C, in which linear dependencies exist. (See below)

Linear Dependency:

A -> B -> C, where "->" indicates must complete before.

In this case, if C is a bottleneck, then assigning an additional resource to either A or B does not necessarily improve system performance; it simply adds to the bottleneck at C.

For example, if an ATB has 10 threads (i.e. Q1....Q10) and due to a bottleneck 50%
of the allotted time is used after Q3 (see Figure 3), then all the thresholds for threads/process Q3 are made more aggressive so that this ATB can complete in the allotted time, reducing the bottleneck.

Shown in Figure 1, Task A is broken into individual (Process) threads at the application level. Each process performs a specific job. At the end, all of the

1


Page 02 of 4

individual outputs fr...