Q-Fabric - System Support for Continuous Online Quality Management


Advanced distributed applications like grid services and enterprise computing are becoming increasingly complex. In particular, dynamic services like distributed multimedia and remote collaboration require support for sophisticated quality management in order to provide  end-users with the quality of service (QoS) they require. This is a challenging problem, not only because of the scale of distributed applications and systems, but also because QoS support needs to be specific to the requirements of individual end-users. Moreover, quality management is a continuous process that involves (1) monitoring and controlling the use of resources, (2) reacting to dynamic changes in user requirements and resource availabilities, or to system anomalies, and (3) utilizing resources efficiently while ensuring that system-wide requirements are met. Achieving these goals requires that end systems cooperate in the monitoring and the control of the resources and that applications and quality management interact to coordinate the adaptation of both system resource allocations and application behavior.

Q-Fabric is a collection of communication and computation services that jointly permit the continuous management of a distributed system's resources and of the applications using them. Its design is based on several key principles: (a) a full in-kernel implementation for high performance and fine-grained and unrestricted access to all system resources; (b) a flexible and lightweight cross-domain communication mechanism that links the kernel- with the application-level components being managed; (c) an event-based kernel-to-kernel communication structure able to dynamically couple distributed quality management components; and (d) a customization and extension interface that includes mechanisms to dynamically generate and relocate quality management components, allowing users to extend or customize the functionality of Q-Fabric-based quality management to meet their specific needs. The Q-Fabric and sample management components for multi-machine  and multi-resource quality management have been implemented and evaluated with standard Redhat Linux distributions on both server and end systems, including multimedia applications such as videoconferencing, managed using user-centric and system-level (e.g., energy) quality metrics.


Q-Fabric consists of a number of cooperating OS-level components as shown in the following figure.  The first image shows the components together with the communication paths among the components, the second image shows the components that can be extended or customized via the Extension and Customization Interface of Q-Fabric. Customizability is a major concern of our work, because there is no single optimal solution in quality management that can be used for all applications on all architectures. That is, a video conferencing application will require a quality management approach that ensures that video streams are transmitted at a constant rate with minimal jitter and best achievable image quality, whereas a clustered server has to ensure minimal response times to service requests and high throughput by balancing the requests evenly among all servers. On the other hand, an application if executed on a desktop has different constraints than if executed on a mobile device such as a handheld or cell phone, e.g., mobile devices often have no disk space available and have to consider energy constraints.


The components of Q-Fabric are:



Q-Fabric is under development, however,  if you are interested in playing with it or even extending it, here is the code. Feedback is always welcome!



Contact Christian Poellabauer at chris.no_spam@cc.gatech.edu for more information or feedback.