WWV 20091 Analyzing a Proxy Cache Server Performance Model with the Probabilistic Model Checker PRISM Tamás Bérczes 1, Gábor Guta.

Slides:



Advertisements
Similar presentations
Configuration management
Advertisements

EISCambridge 2009MoN8 Exploring Markov models for gate-limited service and their application to network-based services Glenford Mapp and Dhawal Thakker.
DETAILED DESIGN, IMPLEMENTATIONA AND TESTING Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
An Introduction to the Model Verifier verds Wenhui Zhang September 15 th, 2010.
1 Scoped and Approximate Queries in a Relational Grid Information Service Dong Lu, Peter A. Dinda, Jason A. Skicewicz Prescience Lab, Dept. of Computer.
SOFTWARE TESTING. INTRODUCTION  Software Testing is the process of executing a program or system with the intent of finding errors.  It involves any.
1 A class of Generalized Stochastic Petri Nets for the performance Evaluation of Mulitprocessor Systems By M. Almone, G. Conte Presented by Yinglei Song.
Statistical Probabilistic Model Checking Håkan L. S. Younes Carnegie Mellon University.
Load Balancing of Elastic Traffic in Heterogeneous Wireless Networks Abdulfetah Khalid, Samuli Aalto and Pasi Lassila
Small-world Overlay P2P Network
HMM-BASED PATTERN DETECTION. Outline  Markov Process  Hidden Markov Models Elements Basic Problems Evaluation Optimization Training Implementation 2-D.
CSE 3504: Probabilistic Analysis of Computer Systems Topics covered: Continuous time Markov chains (Sec )
ECIV 301 Programming & Graphics Numerical Methods for Engineers Lecture 4 Programming and Software EXCEL and MathCAD.
CSE 221: Probabilistic Analysis of Computer Systems Topics covered: Simple queuing models (Sec )
TCOM 501: Networking Theory & Fundamentals
Lecture 4&5: Model Checking: A quick introduction Professor Aditya Ghose Director, Decision Systems Lab School of IT and Computer Science University of.
1 Petri Nets H Plan: –Introduce basics of Petri Net models –Define notation and terminology used –Show examples of Petri Net models u Calaway Park model.
Single queue modeling. Basic definitions for performance predictions The performance of a system that gives services could be seen from two different.
1 Probabilistic Models for Web Caching David Starobinski, David Tse UC Berkeley Conference and Workshop on Stochastic Networks Madison, Wisconsin, June.
A Distributed Proxy Server for Wireless Mobile Web Service Kisup Kim, Hyukjoon Lee, and Kwangsue Chung Information Network 2001, 15 th Conference.
Architecture, Deployment Diagrams, Web Modeling Elizabeth Bigelow CS-15499C October 6, 2000.
Probabilistic Verification of Discrete Event Systems Håkan L. S. Younes.
1 Validation and Verification of Simulation Models.
Implementing ISA Server Caching. Caching Overview ISA Server supports caching as a way to improve the speed of retrieving information from the Internet.
VESTA: A Statistical Model- checker and Analyzer for Probabilistic Systems Authors: Koushik Sen Mahesh Viswanathan Gul Agha University of Illinois at Urbana-Champaign.
Dimitrios Konstantas, Evangelos Grigoroudis, Vassilis S. Kouikoglou and Stratos Ioannidis Department of Production Engineering and Management Technical.
Research on cloud computing application in the peer-to-peer based video-on-demand systems Speaker : 吳靖緯 MA0G rd International Workshop.
Katanosh Morovat.   This concept is a formal approach for identifying the rules that encapsulate the structure, constraint, and control of the operation.
Design and Implement an Efficient Web Application Server Presented by Tai-Lin Han Date: 11/28/2000.
1 Performance Evaluation of Computer Networks: Part II Objectives r Simulation Modeling r Classification of Simulation Modeling r Discrete-Event Simulation.
Chapter 8 Architecture Analysis. 8 – Architecture Analysis 8.1 Analysis Techniques 8.2 Quantitative Analysis  Performance Views  Performance.
Planning and Verification for Stochastic Processes with Asynchronous Events Håkan L. S. Younes Carnegie Mellon University.
Chapter 13: Implementation Phase 13.3 Good Programming Practice 13.6 Module Test Case Selection 13.7 Black-Box Module-Testing Techniques 13.8 Glass-Box.
DELAYED CHAINING: A PRACTICAL P2P SOLUTION FOR VIDEO-ON-DEMAND Speaker : 童耀民 MA1G Authors: Paris, J.-F.Paris, J.-F. ; Amer, A. Computer.
ACPN2010, Rostock, September 22nd Advanced solution methods for Stochastic Petri Nets Prof.ssa Susanna Donatelli Universita’ di Torino, Italy
Implicit An Agent-Based Recommendation System for Web Search Presented by Shaun McQuaker Presentation based on paper Implicit:
On QoS Guarantees with Reward Optimization for Servicing Multiple Priority Class in Wireless Networks YaoChing Peng Eunyoung Chang.
Configuration Management (CM)
BitTorrent Nathan Marz Raylene Yung. BitTorrent BitTorrent consists of two protocols – Tracker HTTP protocol (THP) How an agent joins a swarm How an agent.
NETE4631:Capacity Planning (2)- Lecture 10 Suronapee Phoomvuthisarn, Ph.D. /
CS6133 Software Specification and Verification
Performance Analyzes of a Proxy Cache Server Model with External Users using the Probabilistic Model Checker PRISM Tamás Bérczes 1,
Carnegie Mellon University 10/23/2015 Survivability Analysis via Model Checking Oleg Sheyner Jeannette Wing Carnegie Mellon University.
Salah A. Aly,Moustafa Youssef, Hager S. Darwish,Mahmoud Zidan Distributed Flooding-based Storage Algorithms for Large-Scale Wireless Sensor Networks Communications,
An Optimal Service Ordering for a World Wide Web Server A Presentation for the Fifth INFORMS Telecommunications Conference March 6, 2000 Amy Csizmar Dalal.
UHD::3320::CH121 DESIGN PHASE Chapter 12. UHD::3320::CH122 Design Phase Two Aspects –Actions which operate on data –Data on which actions operate Two.
PRISM n A Probabilistic Model Checker, Birmingham n Supports 3 models: n 1.Discrete-time Markov chain(DTMC) n 2.Markov decision processes(MDP) n 3.Continuous-time.
Parameterized Models for Distributed Java Objects Tomás Barros & Rabéa Boulifa OASIS Project INRIA Sophia Antipolis April 2004.
Probabilistic Verification of Discrete Event Systems using Acceptance Sampling Håkan L. S. Younes Carnegie Mellon University.
Implementing ISA Server Caching
Lecture #2 How to describe a hybrid system? Formal models for hybrid system João P. Hespanha University of California at Santa Barbara Hybrid Control and.
OPERATING SYSTEMS CS 3530 Summer 2014 Systems and Models Chapter 03.
Finding Models for Blocked 3-SAT Problems in Linear Time by Systematical Refinement of a Sub- Model Gábor Kusper Eszterházy Károly.
SOFTWARE TESTING. Introduction Software Testing is the process of executing a program or system with the intent of finding errors. It involves any activity.
A Structured Solution Approach for Markov Regenerative Processes Elvio G. Amparore 1, Peter Buchholz 2, Susanna Donatelli 1 1 Dipartimento di Informatica,
Software Systems Verification and Validation Laboratory Assignment 4 Model checking Assignment date: Lab 4 Delivery date: Lab 4, 5.
Grid-enabled Probabilistic Model Checking with PRISM Yi Zhang, David Parker, Marta Kwiatkowska University of Birmingham.
Video Caching in Radio Access network: Impact on Delay and Capacity
Dynamic White-Box Testing What is code coverage? What are the different types of code coverage? How to derive test cases from control flows?
ALLOY: A Formal Methods Tool Glenn Gordon Indiana University of Pennsylvania COSC 481- Formal Methods Dr. W. Oblitey 26 April 2005.
Introduction to Programming G50PRO University of Nottingham Unit 6 : Control Flow Statements 2 Paul Tennent
Abstraction and Abstract Interpretation. Abstraction (a simplified view) Abstraction is an effective tool in verification Given a transition system, we.
Software Design Refinement Using Design Patterns
Software Testing.
Graph Coverage for Specifications CS 4501 / 6501 Software Testing
Structural testing, Path Testing
Statistical Model-Checking of “Black-Box” Probabilistic Systems VESTA
Graph Coverage for Specifications CS 4501 / 6501 Software Testing
Presented By: Darlene Banta
‘Crowds’ through a PRISM
Presentation transcript:

WWV Analyzing a Proxy Cache Server Performance Model with the Probabilistic Model Checker PRISM Tamás Bérczes 1, Gábor Guta 2, Gábor Kusper 3, Wolfgang Schreiner János Sztrik 1, 1.: Faculty of Informatics, University of Debrecen, Hungary, 2.: Research Institute for Symbolic Computation (RISC), Johannes Kepler University, Linz, Austria, 3.: Esterházy Károly College, Eger, Hungary,

WWV Motivation The two originally distinct areas –qualitative analysis (verification) –quantitative analysis (performance modeling) have in the last decade started to converge by the arise of –stochastic/probabilistic model checking. One attempt towards this goal is to compare techniques and tools from both communities by concrete application studies. The presented paper is aimed at exactly this direction.

WWV Case Study We apply PRISM to re-assess some web server performance models with proxy cache servers that have been previously described and analyzed in the literature: –L. P. Slothouber. A Model of Web Server Performance. Proceedings of the 5th International World Wide Web Conference, –I. Bose and H. K. Cheng. Performance Models of a Firm’s Proxy Cache Server. Decision Support Systems, 29:47–57, 2000.

WWV The System Performance Models of a Firm’s Proxy Cache Server Client Proxy Cache Server(PCS) Case A: With probability p the request can be answered by the PCS. requests a file with rate lamba and with average file size F. sends back the file in a loop (F > Bxc)

WWV The System Performance Models of a Firm’s Proxy Cache Server Proxy Cache Server(PCS) Case B: With probability 1-p the request must be forwarded to a remote web server. Web Server requests the file from a remote web server with rate (1-p)lambda sends back the file in a loop (F > Bs) Client

WWV Derived Constants l1 = lambda1 = p * lambda l2 = lambda2 = (1-p) lambda Let q be the probability, that the Web Server can send the requested file at once. q = min{1, Bs / F) l2’ = lambda2prime = lambda2 / q

WWV Original Model

WWV Original Equation for Response Time

WWV Original Response Time Diagram

WWV PRISM A Probabilistic Model Checker, developed at University of Oxford Supports 3 models: 1.Discrete-time Markov chain (DTMC) 2.Markov decision processes (MDP) 3.Continuous-time Markov chain (CTMC); we use this one

WWV PRISM In PRISM one gives the model by a –Finite state transition system qualitative aspects of the system –Associate rates to the individual state transitions quantitative aspects of the system Mathematical model: –Continuous-time Markov chain (CTMC) The model can be analyzed by queries –in the language of Continuous Stochastic Logic

WWV Programming PRISM Each process contains declarations of –state variables: vname: [minv..maxv] INIT initv; –state transitions of form: [label] guard -> rate : update; guard: A transition is enabled to execute if its guard condition evaluates to true; rate: it executes with a certain (exponentially distributed) rate. update: performs an update on its state variables: vname’ = vname-1 label: Transitions in different processes with the same label execute synchronously as a single combined transition.

WWV Example // generate requests at rate lambda // [label] guard -> rate : update; module jobs [accept] true -> lambda : true; endmodule

WWV The System in PRISM This network consists of four queues: –one models the Proxy Cache Server –two model the Web server, input/output –one models the loop to download the requested file. We have a job-source: –Users generates jobs, rate: lambda. We have 5 models together: –module jobs –module PCS –module server_input_queue –module server_output_queue –module client_queue

WWV How to Implement a Queue?

WWV State Variables Each model has a counter, which contains the number of request in the represented queue. Note: We make no distinction between requests. Example: module PCS pxc: [0..IP] init 0; … endmodule

WWV [label] guard -> rate : update ; Each module has (generally) two state transitions. One transition (or more) for receiving requests. One transition (or more) for serving requests. The first type increases the counter. The second one decreases it. module PCS pxc: [0..IP] init 0; [accept] pxc 1 :(pxc’ = pxc + 1); [sforward] (pxc > 0) -> (1/Ixc)*(1-p) : (pxc’ = pxc - 1); [panswer] (pxc > 0) -> (1/Ixc)*p : (pxc’ = pxc - 1); endmodule

WWV [label] guard -> rate : update; Each module has (generally) two transitions. One transition (or more) for receiving requests. Guard: there is place in the queue. One transition (or more) for serving requests. Guard: there is at least one request in the queue. module PCS pxc: [0..IP] init 0; [accept] (pxc 1 :(pxc’ = pxc+1); [sforward] (pxc > 0) -> (1/Ixc)*(1-p) : (pxc’ = pxc-1); [panswer] (pxc > 0) -> (1/Ixc)*p : (pxc’ = pxc-1); endmodule

WWV [label] guard -> rate : update; The rate of the server transactions has generally this shape: 1/t * p, where –t is the time for processing a request and –P is the probability of the branch for which the transaction corresponds. Note that if t is a time, then 1/t is a rate. Example, where Ixc is the PCS initialization time: module PCS … [sforward] (pxc > 0) -> (1/Ixc)*(1-p) : (pxc’ = pxc-1); [panswer] (pxwaiting > 0) -> (1/Ixc)*p : (pxc’ = pxc-1); endmodule

WWV [ label ] guard -> rate : update; If two queues, say A and B, are connected, then the server transaction of A and the receiver transaction of B have to be synchronous, i.e., they have to have the same label. The rate of the receiver transactions are always 1, because product of rates rarely makes sense. module PCS … [sforward] (pxc > 0) -> (1/Ixc)*(1-p) : (pxc’ = pxc-1); endmodule module server_input_queue … [sforward] (sic 1 : (sic’=sic+1); … endmodule

WWV A Question!

WWV Implement this server! Which is the right solution? Users send request with rate lambda. The server initialization time is Is, the buffer size is Bs, static server time is Ys, and the dynamic server rate is Rs. Solution A module Server RC[0..size] init 0; RC lambda: RC’=RC+1; [pcs] RC>0-> 1/Is*1/(Ys+Bs/Rs): RC ’ =RC-1; endmodule Solution B module ServerInputQueue RC[0..size] init 0; RC lambda: RC’=RC+1; [serve] RC>0 -> 1/Is: RC’ =RC-1; endmodule module ServerOutputQueue AC[0..size] init 0; [serve] AC 1: AC’=AC+1; [pcs] AC>0 -> 1/(Ys+Bs/Rs): AC’=AC-1; endmodule

WWV Who to Compute the Expected Response Time? Program: module PCS pxc: [0..IP] init 0; … endmodule Reward: rewards "time" true : (pxc+…) / lambda; endrewards CSL query (R: expected value, S: steady-state): R{"time"}=? [ S ]

WWV Response Time: Original Numerical Results and Results Computed by PRISM

WWV Errors in Performance Models of a Firm’s Proxy Cache Server. Client Network Bandwidth and Server Network Bandwidth are modeled as queues. “branching” should not start after the Server Network, but before. One queue is missing to simulate the looping process of sending and receiving files by the client.

WWV Original Model

WWV Corrected Model

WWV Original and Corrected Equations for Response Time

WWV Response Time: Numerical Results for Corrected Equation and Results Computed by PRISM

WWV Conclusion The PRISM modeling language can describe queuing networks by –representing every network node as a module –with explicit qualitative and quantitative descriptions Thus, it forces us to be much more precise about the system model –which may first look like a nuisance, –but shows its advantage when we want to argue about the adequacy of the model.

WWV Thank you for your attention! Tamás Bérczes 1, Gábor Guta 2, Gábor Kusper 3, Wolfgang Schreiner 2, János Sztrik 1, 1.: Faculty of Informatics, University of Debrecen, Hungary, 2.: Research Institute for Symbolic Computation (RISC), Johannes Kepler University, Linz, Austria, 3.: Esterházy Károly College, Eger, Hungary,