Files

Abstract

Modern computer systems are becoming increasingly complex. Apart from functional correctness, they must provide strict guarantees on their quality-of-service (QoS), expressed as goals over important quantifiable metrics, in the face of unpredictable changes in operating environment and workloads. Furthermore, these systems expose numerous tunable parameters (knobs) that, combined with the unpredictable external conditions, impact the QoS of the system. It is an established fact that no single configuration of the knobs is optimal for the entire execution, hence, systems must dynamically adapt their knobs to cope with changes in workloads and operating conditions. However, developing modules for robust adaptation is difficult and requires specialized knowledge of machine learning and/or control theory. This increases the burden on developers who are expected to be experts in the aforementioned fields along with their domain. To alleviate this burden, prior work suggests using pre-built adaptation modules. During execution, systems instantiate these modules which then continually monitor the systems’ behavior and actuate knobs to ensure that they continue to meet their goal. However, a major limitation of prior frameworks is that they are implemented for a narrow set of goals and knobs. Hence, they cannot be used to meet complex adaptive requirements that include changing goals and the knobs used to meet the goals between deployments or at different stages of a single deployment. Such cases require developers to embed multiple frameworks in their systems which makes the development and maintenance of the systems difficult. Hence, the first part of our research proposes a single generalized adaptation framework that is agnostic of knobs and goals. We show the deployment and runtime benefits of our framework in a number of real-world systems. We show that it is not only possible to implement a generalized adaptation framework but that using such a framework is favorable from an engineering and performance perspective. The latter part of this thesis focuses on the deployment of adaptive systems. System administrators colocate multiple systems on the same hardware to maximize resource utilization. However, colocated adaptive systems negatively interfere with each other leading to significant QoS degradation. Prior works have suggested many approaches to mitigate the negative interference. However, they impose severe restrictions on the systems that use them. For example, they restrict the mechanisms that can be used for adaptation, require information of internal details of colocated systems to be shared amongst each other and oftentimes require all adaptation of colocated systems to be delegated to a monolithic adaptation module. Such restrictions make prior work suboptimal for use in the real-world. Hence, we propose a framework that can be used by colocated adaptive systems independently to enable harmonious execution without explicit coordination or information sharing. We show that our framework is beneficial because it provides freedom to stakeholders to develop their systems independently without worrying about the other colocated systems. Hence, this body of work contributes frameworks for: (1) adding generalized adaptation in computing systems and (2) ensuring harmonious execution when they need to be colocated with each other.

Details

Actions

PDF

from
to
Export
Download Full History