Resource
Manager Framework for Controlling QoS
One of the purposes of servers is to provide handle (connection)
for the resources they have, on demand. However, rarely
do servers associate client-priority or impose a limit on
numbers while allocating handles to a client. Instead, the
handles are allotted on a first-come-first-serve basis.
The aim of this framework is to provide a control mechanism
while granting handles to requesting clients. It limits
the number of handles that could be obtained by a client
with specific priority, decided a priori by the administrator.
A client is prioritized by either its fixed attributes
(name, type, organization, etc.) and/or by its run time
context, containing application-specific information (value
of shopping cart, etc.).
The 'Bucket Concept' is used to allot handles of resources
to the requesting client. Accordingly, if the bucket is
full, clients with all priorities are entertained. As
the level of available handles goes down in the bucket,
only high-priority clients are entertained. Resource Manager
also ensures that when a client gets a handle, it can
hold it only for the specified time. It can also get the
handle back if no activity from the client is observed
for a specified duration of time. A Database Connection
Manager has been implemented using this framework as a
proof-of-concept.