Browse Prior Art Database

Use of Priority Value(s) of the Resource Attributes to Find the Best Matching Resource for a Resource Request

IP.com Disclosure Number: IPCOM000030880D
Original Publication Date: 2004-Aug-31
Included in the Prior Art Database: 2004-Aug-31
Document File: 4 page(s) / 54K

Publishing Venue

IBM

Abstract

In today's environments resources can be requested and allocated during provisioning, and other functions, but these are done using a mostly static model. In existing models a resource contains a set of capabilities, e.g. 3GB RAM, 2GHz processor, etc. When a resource is requested a check is made to determine if resource A, B, etc. meets the minimum requirements until no resource is found or until the first matched resource is located. This works OK but doesn't permit the user, application, etc. requesting the resource to necessarily meet their true application requirements. Let's take a program for instance such as some forecasting application that performs a high degree of mathematical computations. Let's also assume the forecasting application requires a minimum of a 2.5GHz machine to run with a minimum of 200KB free disk space. However, given the characteristics of the application and it's computational intensive nature, increases in the processor speed greatly increase the applications performance above just adding more disk space. Solving this problem with the existing model for resource matching isn't possible. This article discusses how to provide the necessary flexibility and levels of granularity expected within the dynamic, on demand environments today.

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

Page 1 of 4

Use of Priority Value(s) of the Resource Attributes to Find the Best Matching Resource for a Resource Request

The core methodology to satisfy these type of resource matching problems is to add priority field(s) to resource queries to optimize decisions in resource matching scenarios. Use of this methodology can be seen in many ways relative towards improving the requested for a resource and guaranteeing that the best fit resource is allocated to satisfy the query. This strategy also permits much more user or application control over the requests for a resource by permitting the inclusion of a dynamic attribute, such as priority, that permits the return of a result weighted against the user's needs. The application of this concept is not restricted to machine resources, such as the provisioning of a new server, but can also be extended to improve resource matching requests in a plethora of environment and industry applications. In addition, you can also add to the best fit nature of this by adding the use of application specific analysis on the matched attributes to facilitate even more granularity to the decision's made. An example would be requesting a resource based on the RAM, CPU speed and disk space and then correlating this to application specific measurements. This lets you assess the case where more than the minimums requested are available. By making this assessment you can determine the impact to your specific performance so you can make a better informed decision. The example below illustrates this.

Application A requests a resource to run on with a minimum of 500MB RAM, 2GHz processor and 1MB free disk space. This request is then sent for matching in an environment that contains 3 machines which meet the minimum criteria. In the case of machine 1 it matches as follows (500, 2,
1), machine 2 as (500, 3, 50) and machine 3 as (1000, 2, 1) respectively. All 3 machines meet the needs but if all three were made available to Application A, and the performance metrics were known in terms of how A performs relative to these 3 attributes, then a decision could be made to ensure A got the machine that is best fit its needs. Take the following tables for example.

Performance RAM baseline = 1 500 2x 1000 3x 1500 4x 2000

Performance CPU baseline = 1 2
1.2x 2.5
1.4x 3
1.5x 3.5

Performance Free DASD baseline = 1 1
1.1x 10
1.1x 50
1.1x 100

Performance RAM CPU Free DASD 1x 500 2 1
2.3x 1000 2.5 10
3.5x 1500 3 50

1

Page 2 of 4

4.6x 2000 3.5 100

Machine Total Performance RAM Contribution CPU Contribution DASD Contribution 1 1x 1x (500) 1x (2) 1x (1) 2 1.5x 1x (500) 1.4x (3) 1.1x (50) 3 2x 2x (1000) 1x (2) 1x (1)

Using these numbers one can see that machine 3 would yield a 2x performance improvement thus would be the selected machine for application A versus machine 1 with a 1x result and machine 2 with 1.5x result.

There are several methods for polling for the matched results which will not be elaborated on here. For example, each resource in the...