
AgileCtrl: A Self-Adaptive Framework for Configuration Tuning (2022)
Read abstract
Software systems increasingly expose performance-sensitive configuration parameters, or PerfConfs, to users. Unfortunately, determining the right settings for these PerfConfs is challenging and often needs to adapt at runtime. Prior research has proposed self-adaptive frameworks that automatically monitor software behavior and dynamically tune configurations to ensure desired performance despite dynamic changes. However, these frameworks often require configuration themselves, either explicitly through additional parameters or implicitly through training. This paper proposes a new framework, AgileCtrl, that eliminates the need for configuration in a large family of control-based self-adaptive frameworks. AgileCtrl’s key insight is to monitor not only the original software but also its adaptations, reconfiguring itself when its internal adaptation mechanisms fail to meet software requirements. We evaluate AgileCtrl by comparing it against recent control-based approaches to self-adaptation that require user configuration. Across multiple case studies, AgileCtrl demonstrates the ability to withstand model errors up to 106×, prevent performance oscillation and crashes, and improve performance by up to 53%. Additionally, it auto-adjusts improper performance goals, achieving an improvement of 50% in performance.
