Experience with collaborating managers: Node group manager and provisioning manager
Abstract
This paper presents an autonomic system in which two managers with different responsibilities collaborate to achieve an overall objective. The first, a node group manager, uses modeling and optimization algorithms to allocate server processes and individual requests among a set of server machines grouped into node groups, and also estimates its ability to fulfill its service-level objectives as a function of the number of server machines available in each node group. The second, a provisioning manager, consumes these estimates from one or more node group managers, and uses them to allocate machines to node groups over a longer timescale. We describe the operation of both managers and the information that flows between them, and present the results of a simple experiment demonstrating the effectiveness of our technique. Furthermore, we relate our architecture to a general autonomic computing architecture based on self-managing resources and patterns of inter-resource collaboration. We also discuss some of the issues involved in incorporating our implementation into existing products in the short term, and describe a number of further directions for this research.