Improving Architecture-Based Self-Adaptation Using Preemption

Time: April 28, 2009 - 2:00 PM - 3:00 PM

Location: INI Conference Room, 1st floor


Presenter: Rahul Raheja

Advisor: Dr. David Garlan, Professor, SCS
Reader: Dr. Shang-Wen Cheng, Post Doctoral Fellow, SCS

One common approach to self-adaptive systems is to incorporate a control layer that monitors a system, externally detects problems, and applies adaptation strategies to fix problems or improve system behavior. While such approaches have been found to be quite effective, they are typically limited to carrying out a single adaptation at a time, delaying other adaptations until the current one finishes. This, in turn, leads to a problem in which a time-critical adaptation may have to wait for an existing long-running adaptation to complete, thereby missing a window of opportunity for that adaptation. Ideally, whenever adaptation conditions arise, regardless of whether an adaptation is already in progress, an adaptive mechanism should be able to reason about all objectives and determine the best adaptation sequence to fulfill those objectives. We describe an approach that improves upon existing approaches by not delaying adaptation strategies. We consider all adaptations, including the currently executing adaptation, immediately when new triggers occur. To make this possible we extend Rainbow’s (architecture-based self-adaptation framework) adaptation mechanisms to support preemption of an executing adaptation strategy, reasoning amongst multiple strategies, starting new ones, and resuming preempted strategies. To facilitate this we propose an adaptation time-utility quality dimension for self-adaptive mechanisms to reason about and to prioritize amongst multiple objectives and their corresponding adaptations at runtime. Scheduling is based on an algorithm that maximizes time-related utility for a set of concurrently executing adaptations.