Approaches are used for efficiently and effectively managing the dynamic
allocation of resources of multi-node database systems between services
provided by the multi-node database server. A service is a category of
work that is hosted on the database server. The approaches manage
allocation of resources at different levels. For services that use a
particular database, the performance realized by the services is
monitored. Resources assigned to the database are allocated between these
services to ensure performance goals for each are met. Resources assigned
to a cluster of nodes are allocated between the databases to ensure that
performance goals for all the services that use the databases are met.
Resources assigned to a farm of clusters are assigned amongst clusters
based on service level agreements and back-end policies. The approach
uses a hierarchy of directors to manage resources at the different
levels.