Characterizing the Impact of Context-Variables in Software Performance Factors: a Domain-Specific Design Patterns Perspective Master Thesis Document Presented in partial fulfillment to obtain the Title of Magister in Informatics and Telecommunications by Juan Manuel Ropero L. Advisor: Gabriel Tamura, PhD Department of Information and Communication Technologies Faculty of Engineering 2017 Contents 1 Introduction 2 1.1 Motivation and Background . .2 1.2 Problem Statement . .3 1.3 Challenges . .3 1.4 Research Objectives . .4 1.4.1 General . .4 1.4.2 Specific . .4 1.5 Methodology . .4 1.6 Contributions . .5 2 State-of-the-Art Background 6 2.1 Self-Adaptive Software (SAS) Systems . .6 2.1.1 The MAPE-K Loop . .7 2.1.2 Self-* Properties . .7 2.2 Service Component Architecture (SCA) . .8 2.3 The Performance Quality Attributes and Performance Factors . .8 2.3.1 Performance Factor Definitions . .9 2.4 Context-Aware Computing . .9 2.4.1 Context-Variable Definitions . 10 2.4.2 Design Patterns for Software Architecture . 14 2.5 Chapter Summary . 15 3 Problem Modeling 17 3.1 The Problem Context . 17 3.2 The Need for an Experiments Design . 18 3.3 Identification of Performance Factors . 18 3.3.1 Search and Identification Process . 18 3.3.2 Distribution Results of Performance Factors . 19 3.3.3 Throughput - Special Consideration . 19 3.4 Identification of Context Variables . 21 3.4.1 Search and Identification Process . 21 3.4.2 Context-variables Categorization . 22 3.4.3 Context Variables - Special Considerations . 22 3.5 Identification of Domain-Specific Design Patterns for Performance . 24 3.5.1 Overview of the Research Methodology . 24 i 3.6 Domain-Specific Design Patterns for Performance . 25 3.6.1 The Design Pattern Template . 26 3.6.2 Random Access Parser Design Pattern . 27 3.6.3 Reactor Design Pattern . 29 3.6.4 State-based Pipeline Design Pattern . 31 3.6.5 Thread Pool Design Pattern . 34 3.6.6 Master-Worker Design Pattern . 35 3.6.7 Separable Dependencies Design Pattern (Variant of 3.6.6) . 39 3.6.8 Fork / Join Design Pattern . 41 3.6.9 Producer-Consumer Design Pattern . 43 3.6.10 Sender Released . 46 3.6.11 Leader and Followers . 48 3.6.12 Half-Sync / Half-Async . 51 3.6.13 Sayl . 52 3.6.14 MapReduce . 55 3.7 Problem Model Instantiation . 58 3.7.1 Experiment Case Studies . 59 3.7.2 Domain-Specific Design Patterns for Performance - Selection . 61 3.7.3 Performance Factors - Selection . 63 3.7.4 Context Variables - Selection . 64 3.8 Chapter Summary . 65 4 Experiments Design 66 4.1 Experiment Environment Configuration . 66 4.1.1 Software Technologies . 66 4.1.2 The Warming Up Process . 67 4.1.3 Pilot Experiments for Special System Variables . 68 4.1.4 Hardware and Network Architecture . 69 4.1.5 Software Architecture for The Sorting Case . 69 4.1.6 Memory Architecture for The Sorting Case . 76 4.1.7 Variable Configuration: Pilot Experiments . 77 4.2 Experiments Design . 83 4.2.1 The Sorting Case - Experiments Design . 83 4.2.2 The Large XML Processing Case - Experiments Design . 90 4.3 Chapter Summary . 90 5 Analysis of Experiment Results 93 5.1 Impact of Context-Variables on Latency for the Sorting Case . 94 5.1.1 Design Patterns and Memory Structure Variations . 94 5.1.2 Network Bandwidth . 95 5.1.3 Communication Time . 97 5.1.4 RAM Memory Usage . 106 5.1.5 Buffer Size . 111 5.1.6 Batch Time Span . 114 5.1.7 File Length . 114 5.1.8 Task Granularity: Batch-Size . 121 ii 5.1.9 Number of Available Distributed Task Processors . 122 5.1.10 Number of Available Task Processors + Task Granularity . 125 5.1.11 Number of Available Task Processors + File Length . 125 5.1.12 Task Granularity + File Length . 129 5.1.13 Number of Task Processors + Task Granularity + File Length . 133 5.1.14 An Isolated Experiment for The UMA-NORMA Memory Structure . 144 5.2 Context-Variables Impact on Throughput for The Sorting Case . 144 5.2.1 Number of Service Requests . 145 5.2.2 Design Patterns and File Size . 145 5.2.3 Number of Available Distributed Task Processors . 146 5.2.4 The Impact of Two-Mergers . 150 5.3 A Comparative Analysis between Latency and Throughput for The Sorting Case . 150 5.4 A Complementary Evaluation of The XML Processing Case . 153 5.4.1 Summary of the Throughput Analysis from "Processing Large Volumes of Data Physically Stored in XML Files" . 155 5.4.2 Latency Performance Analysis . 157 5.4.3 Batch Time Span Evaluation in the XML Processing Case . 157 5.5 Best Performance Combinations . 157 5.5.1 Sorting Case . 159 5.5.2 Best Latency Results . 159 5.5.3 Best Throughput Results . 159 5.5.4 XML Processing Case . 159 5.6 Chapter Summary . 159 6 Summary and Conclusions 162 iii List of Tables 3.1 Context-Variables Categorization . 23 4.1 JVM Heap Size Experiment . 68 4.2 Hardware Technical Specifications . 69 4.3 Network Switch Hardware Specifications . 70 4.4 Latency Results for the NORMA Configuration of the Experimental Pilot for Batch Size Tests . 78 4.5 Latency Results for the UMA Configuration of the Experimental Pilot for Batch Size Tests............................................. 79 4.6 Latency Distribution Behavior Test for Master-Worker Under Different Architectures Configurations. All values are given in milliseconds . 80 4.7 Latency Distribution Behavior Test for Producer-Consumer Under Different Archi- tectures Configurations. All values are given in milliseconds . 81 4.8 Latency Distribution Behavior Test for Sayl Under Different Architectures Configu- rations. All values are given in milliseconds . 82 4.9 Producer-Consumer NORMA latency results using synchronous and asynchronous methods for triggering tasks. All latency data is presented in milliseconds. 84 4.10 Producer-Consumer UMA latency results using synchronous and asynchronous meth- ods for triggering tasks. All latency data is presented in milliseconds. 85 4.11 Sayl NORMA latency results using synchronous and asynchronous methods for trig- gering tasks. All latency data is presented in milliseconds. 86 4.12 Sayl UMA latency results using synchronous and asynchronous methods for trigger- ing tasks. All latency data is presented in milliseconds. 87 4.13 Experiments for the sorting case. Compendium of the variables variations for La- tency Experiments. 89.
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages178 Page
-
File Size-