To Adapt or Not to Adapt?: Technical Debt and Learning Driven Self-Adaptation for Managing Runtime Performance

Self-adaptive system (SAS) can adapt itself to optimize various key performance indicators in response to the dynamics and uncertainty in environment. In this paper, we present Debt Learning Driven Adaptation (DLDA), an framework that dynamically determines when and whether to adapt the SAS at runtime. DLDA leverages the temporal adaptation debt, a notion derived from the technical debt metaphor, to quantify the time-varying money that the SAS carries in relation to its performance and Service Level Agreements. We designed a temporal net debt driven labeling to label whether it is economically healthier to adapt the SAS (or not) in a circumstance, based on which an online machine learning classifier learns the correlation, and then predicts whether to adapt under the future circumstances. We conducted comprehensive experiments to evaluate DLDA with two different planners, using 5 online machine learning classifiers, and in comparison to 4 state-of-the-art debt-oblivious triggering approaches. The results reveal the effectiveness and superiority of DLDA according to different metrics.

[1]  Ian H. Witten,et al.  The WEKA data mining software: an update , 2009, SKDD.

[2]  David B. Knoester,et al.  Plato: a genetic algorithm approach to run-time reconfiguration in autonomic computing systems , 2011, Cluster Computing.

[3]  Valérie Issarny,et al.  Dynamic decision networks for decision-making in self-adaptive systems: A case study , 2013, 2013 8th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS).

[4]  Asit Dan,et al.  Web services agreement specification (ws-agreement) , 2004 .

[5]  Wolfgang Emmerich,et al.  Service-Level Agreements for Electronic Services , 2010, IEEE Transactions on Software Engineering.

[6]  Simon Haykin,et al.  Neural Networks: A Comprehensive Foundation , 1998 .

[7]  Sam Malek,et al.  A Learning-Based Framework for Engineering Feature-Oriented Self-Adaptive Software Systems , 2013, IEEE Transactions on Software Engineering.

[8]  Patrick Martin,et al.  An Adaptive and Intelligent SLA Negotiation System for Web Services , 2011, IEEE Transactions on Services Computing.

[9]  Rami Bahsoon,et al.  Self-Adaptive Trade-off Decision Making for Autoscaling Cloud-Based Services , 2016, IEEE Transactions on Services Computing.

[10]  Danny Weyns,et al.  Keep it SIMPLEX: satisfying multiple goals with guarantees in control-based self-adaptive systems , 2016, SIGSOFT FSE.

[11]  Chen Wang,et al.  A Two-Phase Online Prediction Approach for Accurate and Timely Adaptation Decision , 2012, 2012 IEEE Ninth International Conference on Services Computing.

[12]  Alexander Egyed,et al.  Applying multiobjective evolutionary algorithms to dynamic software product lines for reconfiguring mobile applications , 2015, J. Syst. Softw..

[13]  Geoff Holmes,et al.  MOA: Massive Online Analysis , 2010, J. Mach. Learn. Res..

[14]  John Mylopoulos,et al.  Model Predictive Control for Software Systems with CobRA , 2016, 2016 IEEE/ACM 11th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS).

[15]  Bradley R. Schmerl,et al.  Improving Architecture-Based Self-Adaptation through Resource Prediction , 2009, Software Engineering for Self-Adaptive Systems.

[16]  Erik M. Fredericks Automatically hardening a self-adaptive system against uncertainty , 2016, SEAMS@ICSE.

[17]  Geoff Hulten,et al.  Mining high-speed data streams , 2000, KDD '00.

[18]  Ward Cunningham,et al.  The WyCash portfolio management system , 1992, OOPSLA '92.

[19]  John Mylopoulos,et al.  Solving the next adaptation problem with prometheus , 2016, 2016 IEEE Tenth International Conference on Research Challenges in Information Science (RCIS).

[20]  Tore Dybå,et al.  A systematic review of effect size in software engineering experiments , 2007, Inf. Softw. Technol..

[21]  Romain Rouvoy,et al.  PowerAPI: A Software Library to Monitor the Energy Consumed at the Process-Level , 2013, ERCIM News.

[22]  Bradley R. Schmerl,et al.  Software Engineering for Self-Adaptive Systems: A Second Research Roadmap , 2010, Software Engineering for Self-Adaptive Systems.

[23]  Pat Langley,et al.  Estimating Continuous Distributions in Bayesian Classifiers , 1995, UAI.

[24]  Anne Koziolek,et al.  Considering Transient Effects of Self-Adaptations in Model-Driven Performance Analyses , 2016, 2016 12th International ACM SIGSOFT Conference on Quality of Software Architectures (QoSA).

[25]  Xin Yao,et al.  FEMOSAA: Feature Guided and Knee Driven Multi-Objective Optimization for Self-Adaptive Software at Runtime , 2016, ACM Trans. Softw. Eng. Methodol..

[26]  Xin Yao,et al.  DDD: A New Ensemble Approach for Dealing with Concept Drift , 2012, IEEE Transactions on Knowledge and Data Engineering.

[27]  Martin Arlitt,et al.  A workload characterization study of the 1998 World Cup Web site , 2000, IEEE Netw..

[28]  N. Altman An Introduction to Kernel and Nearest-Neighbor Nonparametric Regression , 1992 .

[29]  Lars Grunske,et al.  Statistical detection of QoS violations based on CUSUM control charts , 2012, ICPE '12.

[30]  Geoff Holmes,et al.  Batch-Incremental versus Instance-Incremental Learning in Dynamic and Evolving Data , 2012, IDA.

[31]  Ladan Tahvildari,et al.  Self-adaptive software: Landscape and research challenges , 2009, TAAS.