Performance Antipatterns: Detection and Evaluation of Their Effects in the Cloud

The way an application is designed and certain patterns thereof, play a significant role and might have a positive or a negative effect on the performance of the application. Some design patterns that have a negative effect on performance, also called performance antipatterns, may become important when evaluating migrating the application to the Cloud. Although there has been work done in the past related to defining performance antipatterns, there has been none that highlights the importance and effects of these performance antipatterns when an application is migrated to Cloud. In this work we present an approach to automatically detect important performance antipatterns in an application, by leveraging static code analysis and information about prospective deployment of the application components on the Cloud. We also experimentally show that these antipatterns may become prominent and pull down the application's performance if the application is migrated to the Cloud. Our results show that the performance of the parts of the application with such antipatterns suffer significantly and hence, the detection of these antipatterns has an overarching significance in the domain of software development for the Cloud. The approach we present here has also been implemented in a prototype cloud migration assessment tool.

[1]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[2]  C. U. Smith More New Software Performance Antipatterns : Even More Ways to Shoot Yourself in the Foot , 2000 .

[3]  Kishor S. Trivedi Probability and Statistics with Reliability, Queuing, and Computer Science Applications , 1984 .

[4]  Shubhashis Sengupta,et al.  MAT: A Migration Assessment Toolkit for PaaS Clouds , 2013, 2013 IEEE Sixth International Conference on Cloud Computing.

[5]  Connie U. Smith,et al.  Software performance antipatterns , 2000, WOSP '00.

[6]  John Murphy,et al.  Detecting Performance Antipatterns in Component Based Enterprise Systems , 2008, J. Object Technol..

[7]  Vibhu Saujanya Sharma,et al.  Detecting Performance Antipatterns before Migrating to the Cloud , 2013, 2013 IEEE 5th International Conference on Cloud Computing Technology and Science.

[8]  Laurie Hendren,et al.  Soot---a java optimization framework , 1999 .

[9]  Hironori Washizaki,et al.  Detecting Design Patterns Using Source Code of Before Applying Design Patterns , 2009, 2009 Eighth IEEE/ACIS International Conference on Computer and Information Science.

[10]  Vittorio Cortellessa,et al.  Antipattern-based model refactoring for software performance improvement , 2012, QoSA '12.

[11]  K. M. Annervaz,et al.  Java source-code clustering: unifying syntactic and semantic features , 2012, ACM SIGSOFT Softw. Eng. Notes.

[12]  Lou J. Somers,et al.  Detecting Patterns in Object-Oriented Source Code - A Case Study , 2007, ICSOFT.

[13]  Connie U. Smith,et al.  New Software Performance AntiPatterns: More Ways to Shoot Yourself in the Foot , 2002, Int. CMG Conference.

[14]  Alok Mishra,et al.  Java source-code clustering: Unifying syntactic and semantic features , 2013, ACM SIGSOFT Softw. Eng. Notes.

[15]  Welf Löwe,et al.  Automatic design pattern detection , 2003, 11th IEEE International Workshop on Program Comprehension, 2003..