Neil Stratford, Richard Mortier,
An Economic Approach to Adaptive Resource Management,
Proc. HotOS 1999
(Summary by George Candea)
This paper sets out to build a system that solves the difficult
problem of optimizing resource allocation in a system such that both
global and local optima are achieved. The key is to count on
applications adapting to resource availability conditions. In this
context, the authors note that from among the two types of application
adaptation (user-triggered and resource-triggered) they choose the
latter.
The conventional approach of a centralized QoS manager is rejected on
the basis of five drawbacks: it is hard to describe a general
application model, some of the constraints needed for the global
optimization problem are unknown or inherently incomplete, lack of
scalability, lack of predictability due to co-scheduling artifacts,
and the strong influence that (unknown) user inputs have on resource
demand. The proposed architecture distributes the task of resource
allocation and management both among applications and the resources
themselves.
The system consists of applications and resource
managers. A resource manager is like a broker that is in the
business of selling resource contracts to applications; it aims to
maximize its revenue. An application aims to maximize its own utility
by cleverly buying and trading resource contracts. The money for all
this is provided by user agents that implement a user-defined
policy.
There are two types of contracts:
- Between apps and resource managers. In exchange for a
price, the resource manager provides a guarantee
(absolute/probabilistic) for access to a given resource. Each contract
is time bound and longer term contracts are expected to be more
expensive, because of unforeseen future demand. Apps can sell their
remaining contracts back to the resource manager if they so
choose. Shared resources (e.g., shared libs, shared caches) are
typically associated with a middle man, who obtains the relevant
contracts and then charges each application based on usage.
- Between user agents and applications. User agents
distribute money to applications that they oversee, based on
user-specified directions. A less important app will receive fewer
credits; an app that is expected to adapt less will receive chunks of
money at larger intervals than apps that should adapt more frequently,
as this enables the lazy app to negotiate longer term contracts.
Contract renewal happens on various time scales: app - resource
mgr. contracts are renegotiated on the order of 10s-100s of
milliseconds and user agent - app contracts on the order of
seconds. Scheduling is expected to be done on the order of single
milliseconds. Contract pricing must satisfy three conditions:
efficiency (since it happens often), promote system stability, and not
have restricted time scales.
As of this paper's date, the authors had not implemented the system
per se.