A Domain-Specific Design Patterns Perspective

A Domain-Specific Design Patterns Perspective

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.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    178 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us