Debugging distributed systems. CS514: Intermediate Course in Operating Systems. Today s topic. Waterfall Model. V Model.
|
|
- Cameron Shepherd
- 5 years ago
- Views:
Transcription
1 CS514: Intermediate Course in Operating Systems Professor Ken Birman Vivek Vishnumurthy: TA Debugging distributed systems The proliferation of component reuse has made debugging really hard! Many applications are just glue. The underlying components come from elsewhere Multiple languages, multiple paradigms Issues arise at every stage: development, execution, upgrades to components, performance problems Today s topic Waterfall Model Review some examples of software engineering approaches and tools Discuss their capabilities and limits Then shift attention to technologies for debugging, monitoring, performance evaluation Finally offer some thoughts about how models (like virtual synchrony or Paxos) can simplify the task ANALYSIS PROGRAM CODING UNIT & INTE- GRATION TESTING TESTING ACCEPTANCE TESTING OPERATION & MAINTENANCE V Model Prototyping Model ANALYSIS Validate requirements OPERATION & MAINTENANCE Verify design ACCEPTANCE TESTING TESTING Listen to Customer Build/Revise Mock-Up PROGRAM UNIT & INTE- GRATION TESTING Customer Test-drives Mock-up CODING [Pressman 97] 1
2 Prototyping Model Operational Specification Model LIST OF REVISIONS LIST OF REVISIONS LIST OF REVISIONS Execute and Revise revise prototype user/ customer review PROTOTYPE PROTOTYPE PROTOTYPE TEST OPERATIONAL SPECIFICATION (problem-oriented) TRANSFORMED SPECIFICATION (implementationoriented) TEST (sometimes informal or incomplete) DELIVERED (sometimes informal or incomplete) DELIVERED Phased Development Model Boehm s Spiral Model DEVELOPERS USERS Build Release 1 Development systems Build Release 2 Build Release 3 Use Release 1 Use Release 2 Production systems Time Use Release 3 DETERMINE GOALS, ALTERNATIVES, CONSTRAINTS Budget 4 PLAN Alternatives 4 Budget 3 Integration and test plan Alternatives 3 Constraints 4 Alternatives 2 Constraints 3 Constraints 2 Constraints 1 Alternatives 1 Budget 2 Budget 1 start Requirements, life-cycle plan Development plan Implementation plan Risk analysis 3 Risk analysis 2 Risk analysis 1 Risk analysis 4 EVALUATE ALTERNATIVES ANDRISKS Proto - Proto - Proto - Prototype 1 type 2 type 3 type 4 Concept of operation Validated requirements Acceptance test Software requirements Validated, verified design System test Software design Unit test Code Detailed design DEVELOP AND TEST Focus on debugging Clearly, this is just one part of the picture A professional team really needs to cover the whole picture And all members need to be comfortable with entire process! Debugging 101 Start by discussing issues and options in a single non-distributed program Two broad cases Programs written in unsafe languages, like C or C++ Programs written in safe languages like Java and C# The former are probably more common 2
3 First, know what correct means Many programs lack clear specifications. Start by writing down what it does in the simplest, highest level form you can Not how it does it, but just what inputs it has, what it computes, where it puts results Next, separately, document how it does it The high-level algorithm. If relevant, could include a correctness argument Now you code it Ideally, use a type-checked language Java, C# prevent many kinds of errors But can get some of the same guarantees using type-checking mode in compilers for languages like C, C++ and Fortran Many argue that object-oriented design and coding is inherently less bug prone I m not really convinced of this Concurrency Concurrency is a major source of bugs Take a class like CS414, or read a book Try and code in what we call monitor style. This is similar to [synchronized] class in C# or Java Forces a rather stylized handling of variables shared between threads and associated synchronization easier to reason about Completion: Testing (Q/A) Requires skill and hard work to design a comprehensive test suite Many people start by testing object classes in isolation (not in the context of their program) Idea is to build a separate test harness that exercises your object class in every possible way This also facilitates performance tuning Completion: Testing (Q/A) Must obtain maximum level of code coverage Try to ensure that your test harness will exercise every code path There are coverage tools available to help; they tell you whether there are untested paths in the application Even with total coverage bugs often remain, but less of them Completion: Testing (Q/A) Now test your program as an integrated whole, with same approach Goal is to expose it to the widest possible range of realistic scenarios that you can Keep in mind that the logic combining your correct components could have flaws. So the sum of a set of correct objects might be a very incorrect program! 3
4 Use of debuggers Reasonable development platforms have high-quality debuggers At a minimum: Means of setting and controlling breakpoints Looking at objects, tracing changes to them Ways to see the set of active threads Some go even further and offer ways to write chunks of debug code that will run when a breakpoint is reached, e.g. to check a data structure for correctness Performance tuning Normally, done after the program is initially debugged Must Compile with optimization Then begin to measure key properties, perhaps by doing something lots of times Example: if putting a node in a tree is too fast to really instrument, put 10,000 nodes in, and measure the costs of doing that Performance tuning Tools available to us The system clock is quite useful, but often has 1/60 th second resolution Fine-grained execution profilers help a great deal Visual Studio: profiling support planned soon Today, can obtain the ANTS profiler On Linux, use gprof tool for C, C++ Now we finally have a solid single-machine solution Begin to repeat the process in a distributed manner Again, start by documenting intended behavior So: Specification, algorithm, correctness argument Test harness can be a challenge but remains worthwhile Often obtained by hacking your actual program, e.g. to issue a legitimate request 10,000 times Important that a scenario be repeatable, so that after fixing a bug you can test the repair! An issue: Distributed debuggers There aren t any! Some debuggers do set breakpoints across component boundaries But this isn t often what developers need It s hard to debug distributed code!!! A distributed data mining task. Astrolabe was built for this Distributed logging Suppose an application After a test run the has several components Database One option is to developer that support run remotely can collect the a debug mode logs, in which merge them, and remote servers (hopefully) keep logs identify issues Web Service CORBA Application 4
5 Distributed logging: Merge Put timestamps, component name on each line in each log [10:22: ] [DB] Received WS UPDATE req Then combine files, run sort. Ideally, you see events as they occurred across the system But recall: clocks can t be perfectly synchronized So do some sanity checking look at a few obvious entries to make sure that requests arrive after they are sent, that replies arrive after request was processed, etc Might need to build a merge sort program of your own that can adjust timestamps if needed Insight from Group Comm. Why did we discuss virtual synchrony, transactions, Paxos? Because these are cool tools But also because these tools simplify the task of the application developer If a programming environment automates handling of tricky events, applications are far more likely to be robust Simplifies in what sense? Transactions: ACID properties We code as if transaction runs against an idle database and doesn t fail System cleans up and also hides concurrency so these coding assumptions seem to be valid at runtime In contrast, for an older generation of systems, runtime was ruintime! Virtual synchrony Similar argument Programmers have trouble implementing replication, tracking membership So platform solves this once and offers the user a simplified model That developer is far less likely to make mistakes because he/she has far fewer cases and events to worry about! But virtual synchrony was complex! Yes and no Implementing virtual synchrony is tricky But ideally, it lives in a pre-built library Using virtual synchrony gives simplified code Often performance is not an issue and we just use abcast for everything Fancy issues and primitives are for hackers who want to put the pedal to the metal But correctness isn t the whole story Is our system correct? But is it also secure? Can performance be badly disrupted by unexpected events What about rare events that become common as a deployment scales up? Few developers think much beyond the initial moment of getting things working 5
6 Performance evaluation is hard Examples of things commonly measured: Requests per second that can be handled From a single source and from many Delay when a request is done Within the server From the client s perspective, with network in the middle Load on the network, and breakdown of messages between workload and overhead Load on individual services Scalability Here we typically look at the impact of Increased numbers of clients Increased numbers of servers Making the network itself larger, while holding other things constant Impacts latencies, frequency of network disruptions visible to programs But how can we get lots of machines? Value of testbeds One option is to build a simulation This can be invaluable but it isn t reality Best simulators run actual code in a simulated environment. Like JIST/SWANS Much better: run real code in a real environment For this we need testbeds Examples of testbeds Many groups have access to some form of cluster At Cornell, Ken s group has a 250 node rack-style cluster We can use it directly to emulate a data center Or we can run Emulab on it (Utah) Emulab and Modelnet These creates an instrumented runtime environment (mostly Linux) Special device drivers can Slow down messages Discard messages Play with message spacing/dups/ordering Permits us to emulate a wide area network configuration! How they differ Emulab routes packets via a special node that injects the desired dynamics Also, they hope to support Windows soon Modelnet creates a kind of virtual PC and is more focused on running LOTS of images on each physical node Seems to be exclusively a Linux technology 6
7 Emulab example Suppose that at noon on Wednesday, communication from Cornell to Berkeley had delays of 53ms +/- 10ms, bandwidth of 180MB/sec, etc Then if we label some emulab nodes as Cornell and some as Berkeley It can intercept packets en route Throw dice to compute the actual delay (or loss) for this particular packet Make it sit in the driver for that long Then deliver it The nodes run in the Cornell system lab as if half were on the west coast and half in Ithaca! Planetlab This is a real wide-area network setup Various participants contribute a few machines each machines offer virtual private partitions Users run experiments distributed over hundreds of real nodes on the real Internet But share the system, interference a worry Injected events With sophisticated applications we need to understand more than the best case behavior! Often the real issue is what happens during failures and recoveries? Studies will often set up a steady-state load and then inject events at known times (e.g. at time t=30, t=60.) Then look at impact of load on overheads, throughputs, etc Other words of wisdom Remember that the peak stress isn t always caused by the peak load Sometimes problems only occur when a system is idle and timeouts can go off So don t make the mistake of only testing under extremely high loads must consider a wide range of operating conditions and scenarios Red-teams For applications designed to be robust, designer shouldn t do Q/A alone Hence work with red teams They study application using public info only Then attack it to break in crash it degrade it. subvert it You use this as feedback for improvement Metrics: The holy grail Your boss will want metrics What exactly is our measure for success? How can we evaluate how fault-tolerant the system is, or how secure? But this is tough Easy to talk about TPC transactions/second Hard to say A is more fault-tolerant than B or A is more secured 7
8 Presenting the story At the end of the day you ll have a tremendous pile of data Although instrumentation and collection of data is (yet another) black art! But now face yet another challenge: how to show people what you ve got This takes a great deal of thought A fantastic book Edward Tufte: The Visual Display of Quantitative Information ( Urges that we escape flatlands by introducing dimensionality to graphs and illustrations Key idea is to create intuitive but rich presentations that tell us a great deal in a single graph, and yet that make sense without a lot of words to explain what we are seeing This is an art and separates the very best systems people from the pack Summary? Building a program is just one step in a process And even those working alone need to think about that entire process You ll never debug a program unless you decide how it should work first! Then can stress test against your theory of how it works and why it works Payoff is that code will work better even under stress 8
CS5412: TRANSACTIONS (I)
1 CS5412: TRANSACTIONS (I) Lecture XVII Ken Birman Transactions 2 A widely used reliability technology, despite the BASE methodology we use in the first tier Goal for this week: in-depth examination of
More informationTesting is a very big and important topic when it comes to software development. Testing has a number of aspects that need to be considered.
Testing Testing is a very big and important topic when it comes to software development. Testing has a number of aspects that need to be considered. System stability is the system going to crash or not?
More informationProgramming with MPI
Programming with MPI p. 1/?? Programming with MPI Miscellaneous Guidelines Nick Maclaren Computing Service nmm1@cam.ac.uk, ext. 34761 March 2010 Programming with MPI p. 2/?? Summary This is a miscellaneous
More informationGDB Tutorial. A Walkthrough with Examples. CMSC Spring Last modified March 22, GDB Tutorial
A Walkthrough with Examples CMSC 212 - Spring 2009 Last modified March 22, 2009 What is gdb? GNU Debugger A debugger for several languages, including C and C++ It allows you to inspect what the program
More informationCS354 gdb Tutorial Written by Chris Feilbach
CS354 gdb Tutorial Written by Chris Feilbach Purpose This tutorial aims to show you the basics of using gdb to debug C programs. gdb is the GNU debugger, and is provided on systems that
More informationCS414 Final Exam, Version 1 (December 2, 2004) 75 Minutes, closed book. Five questions, 20 points each
CS414 Final Exam, Version 1 (December 2, 2004) 75 Minutes, closed book. Five questions, 20 points each 1. Below is the code for a class supporting keyed binary trees. The system adds nodes to the tree
More informationReliable Distributed System Approaches
Reliable Distributed System Approaches Manuel Graber Seminar of Distributed Computing WS 03/04 The Papers The Process Group Approach to Reliable Distributed Computing K. Birman; Communications of the ACM,
More informationDATABASE TRANSACTIONS. CS121: Relational Databases Fall 2017 Lecture 25
DATABASE TRANSACTIONS CS121: Relational Databases Fall 2017 Lecture 25 Database Transactions 2 Many situations where a sequence of database operations must be treated as a single unit A combination of
More informationAdministrivia. Added 20 more so far. Software Process. Only one TA so far. CS169 Lecture 2. Start thinking about project proposal
Administrivia Software Process CS169 Lecture 2 Added 20 more so far Will limit enrollment to ~65 students Only one TA so far Start thinking about project proposal Bonus points for proposals that will be
More informationIntro. Scheme Basics. scm> 5 5. scm>
Intro Let s take some time to talk about LISP. It stands for LISt Processing a way of coding using only lists! It sounds pretty radical, and it is. There are lots of cool things to know about LISP; if
More informationVirtualization. Q&A with an industry leader. Virtualization is rapidly becoming a fact of life for agency executives,
Virtualization Q&A with an industry leader Virtualization is rapidly becoming a fact of life for agency executives, as the basis for data center consolidation and cloud computing and, increasingly, as
More informationTHE COMPLETE FIELD GUIDE TO THE WAN
THE COMPLETE FIELD GUIDE TO THE WAN People interested in setting up a wide-area network (WAN) often have very specific reasons for wanting to do so. WANs are specialized technological tools that deliver
More informationUp and Running Software The Development Process
Up and Running Software The Development Process Success Determination, Adaptative Processes, and a Baseline Approach About This Document: Thank you for requesting more information about Up and Running
More informationCan "scale" cloud applications "on the edge" by adding server instances. (So far, haven't considered scaling the interior of the cloud).
Recall: where we are Wednesday, February 17, 2010 11:12 AM Recall: where we are Can "scale" cloud applications "on the edge" by adding server instances. (So far, haven't considered scaling the interior
More informationProgramming with MPI
Programming with MPI p. 1/?? Programming with MPI Miscellaneous Guidelines Nick Maclaren nmm1@cam.ac.uk March 2010 Programming with MPI p. 2/?? Summary This is a miscellaneous set of practical points Over--simplifies
More informationVerification and Validation
Chapter 5 Verification and Validation Chapter Revision History Revision 0 Revision 1 Revision 2 Revision 3 Revision 4 original 94/03/23 by Fred Popowich modified 94/11/09 by Fred Popowich reorganization
More informationJava Without the Jitter
TECHNOLOGY WHITE PAPER Achieving Ultra-Low Latency Table of Contents Executive Summary... 3 Introduction... 4 Why Java Pauses Can t Be Tuned Away.... 5 Modern Servers Have Huge Capacities Why Hasn t Latency
More informationCache Coherence. CMU : Parallel Computer Architecture and Programming (Spring 2012)
Cache Coherence CMU 15-418: Parallel Computer Architecture and Programming (Spring 2012) Shared memory multi-processor Processors read and write to shared variables - More precisely: processors issues
More informationRsyslog: going up from 40K messages per second to 250K. Rainer Gerhards
Rsyslog: going up from 40K messages per second to 250K Rainer Gerhards What's in it for you? Bad news: will not teach you to make your kernel component five times faster Perspective user-space application
More informationAgreement in Distributed Systems CS 188 Distributed Systems February 19, 2015
Agreement in Distributed Systems CS 188 Distributed Systems February 19, 2015 Page 1 Introduction We frequently want to get a set of nodes in a distributed system to agree Commitment protocols and mutual
More informationIntroduction to OpenMP
Introduction to OpenMP p. 1/?? Introduction to OpenMP Simple SPMD etc. Nick Maclaren nmm1@cam.ac.uk September 2017 Introduction to OpenMP p. 2/?? Terminology I am badly abusing the term SPMD tough The
More informationUnit Testing as Hypothesis Testing
Unit Testing as Hypothesis Testing Jonathan Clark September 19, 2012 5 minutes You should test your code. Why? To find bugs. Even for seasoned programmers, bugs are an inevitable reality. Today, we ll
More information1: Introduction to Object (1)
1: Introduction to Object (1) 김동원 2003.01.20 Overview (1) The progress of abstraction Smalltalk Class & Object Interface The hidden implementation Reusing the implementation Inheritance: Reusing the interface
More informationLecture 14: Exceptions 10:00 AM, Feb 26, 2018
CS18 Integrated Introduction to Computer Science Fisler, Nelson Lecture 14: Exceptions 10:00 AM, Feb 26, 2018 Contents 1 Exceptions and How They Work 1 1.1 Update to the Banking Example.............................
More informationCMSC 433 Programming Language Technologies and Paradigms. Spring 2013
1 CMSC 433 Programming Language Technologies and Paradigms Spring 2013 Distributed Computing Concurrency and the Shared State This semester we have been looking at concurrent programming and how it is
More informationUnit Testing as Hypothesis Testing
Unit Testing as Hypothesis Testing Jonathan Clark September 19, 2012 You should test your code. Why? To find bugs. Even for seasoned programmers, bugs are an inevitable reality. Today, we ll take an unconventional
More informationChapter 2 Web Development Overview
Chapter 2 Web Development Overview Presented by Thomas Powell Slides adopted from HTML & XHTML: The Complete Reference, 4th Edition 2003 Thomas A. Powell Five Pillars of Sites Web sites have five aspects
More informationOverview. State-of-the-Art. Relative cost of error correction. CS 619 Introduction to OO Design and Development. Testing.
Overview CS 619 Introduction to OO Design and Development ing! Preliminaries! All sorts of test techniques! Comparison of test techniques! Software reliability Fall 2012! Main issues: There are a great
More informationProofwriting Checklist
CS103 Winter 2019 Proofwriting Checklist Cynthia Lee Keith Schwarz Over the years, we ve found many common proofwriting errors that can easily be spotted once you know how to look for them. In this handout,
More informationTrack: EXTOL Business Integrator (EBI)
Track: EXTOL Business Integrator (EBI) Key focuses are Best Implementation Practices & Methodologies and Exploiting (Leveraging) Platform Capabilities. Attendees will take away proven strategies and practices
More informationDebugging. ICS312 Machine-Level and Systems Programming. Henri Casanova
Debugging ICS312 Machine-Level and Systems Programming Henri Casanova (henric@hawaii.edu) Debugging Even when written in high-level languages, programs have bugs Recall the thought that when moving away
More informationIntroduction to Programming
CHAPTER 1 Introduction to Programming Begin at the beginning, and go on till you come to the end: then stop. This method of telling a story is as good today as it was when the King of Hearts prescribed
More informationshortcut Tap into learning NOW! Visit for a complete list of Short Cuts. Your Short Cut to Knowledge
shortcut Your Short Cut to Knowledge The following is an excerpt from a Short Cut published by one of the Pearson Education imprints. Short Cuts are short, concise, PDF documents designed specifically
More informationD Programming Language
Group 14 Muazam Ali Anil Ozdemir D Programming Language Introduction and Why D? It doesn t come with a religion this is written somewhere along the overview of D programming language. If you actually take
More informationDifference Between Dates Case Study 2002 M. J. Clancy and M. C. Linn
Difference Between Dates Case Study 2002 M. J. Clancy and M. C. Linn Problem Write and test a Scheme program to compute how many days are spanned by two given days. The program will include a procedure
More informationCS5412: THE REALTIME CLOUD
1 CS5412: THE REALTIME CLOUD Lecture XXIV Ken Birman Can the Cloud Support Real-Time? 2 More and more real time applications are migrating into cloud environments Monitoring of traffic in various situations,
More informationMergeSort, Recurrences, Asymptotic Analysis Scribe: Michael P. Kim Date: April 1, 2015
CS161, Lecture 2 MergeSort, Recurrences, Asymptotic Analysis Scribe: Michael P. Kim Date: April 1, 2015 1 Introduction Today, we will introduce a fundamental algorithm design paradigm, Divide-And-Conquer,
More informationDebugging Applications in Pervasive Computing
Debugging Applications in Pervasive Computing Larry May 1, 2006 SMA 5508; MIT 6.883 1 Outline Video of Speech Controlled Animation Survey of approaches to debugging Turning bugs into features Speech recognition
More informationUnder the Debug menu, there are two menu items for executing your code: the Start (F5) option and the
CS106B Summer 2013 Handout #07P June 24, 2013 Debugging with Visual Studio This handout has many authors including Eric Roberts, Julie Zelenski, Stacey Doerr, Justin Manis, Justin Santamaria, and Jason
More informationSurvey Results: Virtual Insecurity
Best Practices SURVEY Survey Results: Virtual Insecurity May 2013 Executive Summary: Virtual Assets Could Bring Real Risk Virtualization technologies have reshaped how IT offers and delivers their services
More informationCS103 Handout 29 Winter 2018 February 9, 2018 Inductive Proofwriting Checklist
CS103 Handout 29 Winter 2018 February 9, 2018 Inductive Proofwriting Checklist In Handout 28, the Guide to Inductive Proofs, we outlined a number of specifc issues and concepts to be mindful about when
More informationConsensus a classic problem. Consensus, impossibility results and Paxos. Distributed Consensus. Asynchronous networks.
Consensus, impossibility results and Paxos Ken Birman Consensus a classic problem Consensus abstraction underlies many distributed systems and protocols N processes They start execution with inputs {0,1}
More informationChapter 3. Set Theory. 3.1 What is a Set?
Chapter 3 Set Theory 3.1 What is a Set? A set is a well-defined collection of objects called elements or members of the set. Here, well-defined means accurately and unambiguously stated or described. Any
More information15-498: Distributed Systems Project #1: Design and Implementation of a RMI Facility for Java
15-498: Distributed Systems Project #1: Design and Implementation of a RMI Facility for Java Dates of Interest Assigned: During class, Friday, January 26, 2007 Due: 11:59PM, Friday, February 13, 2007 Credits
More informationTABLE OF CONTENTS THE TOP FIVE SHAREPOINT DAILY DISASTERS AND HOW TO RECOVER FROM THEM. Introduction. #4 Deleted Site Collection. The Key to Recovery
1 TABLE OF CONTENTS 3 Introduction 7 #4 Deleted Site Collection 10 The Key to Recovery 4 #1 Restoring Missing 8 Documents #5 Deleted Permission Settings 11 Prepare for Your Recovery 5 #2 Restoring Previous
More informationCS125 : Introduction to Computer Science. Lecture Notes #38 and #39 Quicksort. c 2005, 2003, 2002, 2000 Jason Zych
CS125 : Introduction to Computer Science Lecture Notes #38 and #39 Quicksort c 2005, 2003, 2002, 2000 Jason Zych 1 Lectures 38 and 39 : Quicksort Quicksort is the best sorting algorithm known which is
More informationCSE332: Data Abstractions Lecture 23: Programming with Locks and Critical Sections. Tyler Robison Summer 2010
CSE332: Data Abstractions Lecture 23: Programming with Locks and Critical Sections Tyler Robison Summer 2010 1 Concurrency: where are we Done: The semantics of locks Locks in Java Using locks for mutual
More informationChapter 9. Software Testing
Chapter 9. Software Testing Table of Contents Objectives... 1 Introduction to software testing... 1 The testers... 2 The developers... 2 An independent testing team... 2 The customer... 2 Principles of
More informationCSE 333 Lecture 1 - Systems programming
CSE 333 Lecture 1 - Systems programming Hal Perkins Department of Computer Science & Engineering University of Washington Welcome! Today s goals: - introductions - big picture - course syllabus - setting
More informationGrand Central Dispatch
A better way to do multicore. (GCD) is a revolutionary approach to multicore computing. Woven throughout the fabric of Mac OS X version 10.6 Snow Leopard, GCD combines an easy-to-use programming model
More informationOptimizing Emulator Utilization by Russ Klein, Program Director, Mentor Graphics
Optimizing Emulator Utilization by Russ Klein, Program Director, Mentor Graphics INTRODUCTION Emulators, like Mentor Graphics Veloce, are able to run designs in RTL orders of magnitude faster than logic
More informationCSCI0330 Intro Computer Systems Doeppner. Lab 02 - Tools Lab. Due: Sunday, September 23, 2018 at 6:00 PM. 1 Introduction 0.
CSCI0330 Intro Computer Systems Doeppner Lab 02 - Tools Lab Due: Sunday, September 23, 2018 at 6:00 PM 1 Introduction 0 2 Assignment 0 3 gdb 1 3.1 Setting a Breakpoint 2 3.2 Setting a Watchpoint on Local
More informationEngineering Robust Server Software
Engineering Robust Server Software Scalability Other Scalability Issues Database Load Testing 2 Databases Most server applications use databases Very complex pieces of software Designed for scalability
More informationCh 1: The Architecture Business Cycle
Ch 1: The Architecture Business Cycle For decades, software designers have been taught to build systems based exclusively on the technical requirements. Software architecture encompasses the structures
More informationSupplemental Handout: Exceptions CS 1070, Spring 2012 Thursday, 23 Feb 2012
Supplemental Handout: Exceptions CS 1070, Spring 2012 Thursday, 23 Feb 2012 1 Objective To understand why exceptions are useful and why Visual Basic has them To gain experience with exceptions and exception
More informationThe SD-WAN security guide
The SD-WAN security guide How a flexible, software-defined WAN can help protect your network, people and data SD-WAN security: Separating fact from fiction For many companies, the benefits of SD-WAN are
More informationCOMP390 (Design &) Implementation
COMP390 (Design &) Implementation Phil (& Dave s) rough guide Consisting of some ideas to assist the development of large and small projects in Computer Science (and a chance for me to try out some features
More informationSimplifying the Development and Debug of 8572-Based SMP Embedded Systems. Wind River Workbench Development Tools
Simplifying the Development and Debug of 8572-Based SMP Embedded Systems Wind River Workbench Development Tools Agenda Introducing multicore systems Debugging challenges of multicore systems Development
More informationCA464 Distributed Programming
1 / 25 CA464 Distributed Programming Lecturer: Martin Crane Office: L2.51 Phone: 8974 Email: martin.crane@computing.dcu.ie WWW: http://www.computing.dcu.ie/ mcrane Course Page: "/CA464NewUpdate Textbook
More informationAsync Programming & Networking. CS 475, Spring 2018 Concurrent & Distributed Systems
Async Programming & Networking CS 475, Spring 2018 Concurrent & Distributed Systems Review: Resource Metric Processes images Camera Sends images Image Service 2 Review: Resource Metric Processes images
More informationCS 167 Final Exam Solutions
CS 167 Final Exam Solutions Spring 2018 Do all questions. 1. [20%] This question concerns a system employing a single (single-core) processor running a Unix-like operating system, in which interrupts are
More informationIt was a dark and stormy night. Seriously. There was a rain storm in Wisconsin, and the line noise dialing into the Unix machines was bad enough to
1 2 It was a dark and stormy night. Seriously. There was a rain storm in Wisconsin, and the line noise dialing into the Unix machines was bad enough to keep putting garbage characters into the command
More informationTesting & Continuous Integration. Kenneth M. Anderson University of Colorado, Boulder CSCI 5828 Lecture 20 03/19/2010
esting & Continuous Integration Kenneth M. Anderson University of Colorado, Boulder CSCI 5828 Lecture 20 03/1/20 University of Colorado, 20 1 Goals 2 Review material from Chapter of Pilone & Miles esting
More informationHuge market -- essentially all high performance databases work this way
11/5/2017 Lecture 16 -- Parallel & Distributed Databases Parallel/distributed databases: goal provide exactly the same API (SQL) and abstractions (relational tables), but partition data across a bunch
More informationCS4450. Computer Networks: Architecture and Protocols. Lecture 13 THE Internet Protocol. Spring 2018 Rachit Agarwal
CS4450 Computer Networks: Architecture and Protocols Lecture 13 THE Internet Protocol Spring 2018 Rachit Agarwal 2 Reflection The events in last few days have left me sad! Such events must be condemned
More informationDistributed Systems Principles and Paradigms. Chapter 01: Introduction
Distributed Systems Principles and Paradigms Maarten van Steen VU Amsterdam, Dept. Computer Science Room R4.20, steen@cs.vu.nl Chapter 01: Introduction Version: October 25, 2009 2 / 26 Contents Chapter
More information3 Continuous Integration 3. Automated system finding bugs is better than people
This presentation is based upon a 3 day course I took from Jared Richardson. The examples and most of the tools presented are Java-centric, but there are equivalent tools for other languages or you can
More informationSpring 2016, Malloc Lab: Writing Dynamic Memory Allocator
1. Introduction Spring 2016, Malloc Lab: Writing Dynamic Memory Allocator Assigned: Mar. 03 Due: Mar. 17, 15:59 In this lab you will be writing a dynamic memory allocator for C programs, i.e., your own
More informationIntroduction to User Stories. CSCI 5828: Foundations of Software Engineering Lecture 05 09/09/2014
Introduction to User Stories CSCI 5828: Foundations of Software Engineering Lecture 05 09/09/2014 1 Goals Present an introduction to the topic of user stories concepts and terminology benefits and limitations
More informationDivisibility Rules and Their Explanations
Divisibility Rules and Their Explanations Increase Your Number Sense These divisibility rules apply to determining the divisibility of a positive integer (1, 2, 3, ) by another positive integer or 0 (although
More informationCOMP390 (Design &) Implementation
COMP390 (Design &) Implementation A rough guide Consisting of some ideas to assist the development of large and small projects in Computer Science (With thanks to Dave Shield) Design & Implementation What
More information9 th CA 2E/CA Plex Worldwide Developer Conference 1
1 Introduction/Welcome Message Organizations that are making major changes to or replatforming an application need to dedicate considerable resources ot the QA effort. In this session we will show best
More informationDesigning and debugging real-time distributed systems
Designing and debugging real-time distributed systems By Geoff Revill, RTI This article identifies the issues of real-time distributed system development and discusses how development platforms and tools
More informationDistributed Systems Principles and Paradigms. Chapter 01: Introduction. Contents. Distributed System: Definition.
Distributed Systems Principles and Paradigms Maarten van Steen VU Amsterdam, Dept. Computer Science Room R4.20, steen@cs.vu.nl Chapter 01: Version: February 21, 2011 1 / 26 Contents Chapter 01: 02: Architectures
More informationThis book is about using Visual Basic for Applications (VBA), which is a
In This Chapter Describing Access Discovering VBA Seeing where VBA lurks Understanding how VBA works Chapter 1 Where VBA Fits In This book is about using Visual Basic for Applications (VBA), which is a
More informationBridge Course On Software Testing
G. PULLAIAH COLLEGE OF ENGINEERING AND TECHNOLOGY Accredited by NAAC with A Grade of UGC, Approved by AICTE, New Delhi Permanently Affiliated to JNTUA, Ananthapuramu (Recognized by UGC under 2(f) and 12(B)
More informationSoftware Design and Analysis for Engineers
Software Design and Analysis for Engineers by Dr. Lesley Shannon Email: lshannon@ensc.sfu.ca Course Website: http://www.ensc.sfu.ca/~lshannon/courses/ensc251 Simon Fraser University Slide Set: 1 Date:
More informationATOMIC COMMITMENT Or: How to Implement Distributed Transactions in Sharded Databases
ATOMIC COMMITMENT Or: How to Implement Distributed Transactions in Sharded Databases We talked about transactions and how to implement them in a single-node database. We ll now start looking into how to
More informationConsistency. CS 475, Spring 2018 Concurrent & Distributed Systems
Consistency CS 475, Spring 2018 Concurrent & Distributed Systems Review: 2PC, Timeouts when Coordinator crashes What if the bank doesn t hear back from coordinator? If bank voted no, it s OK to abort If
More informationComputer Science II Lab 3 Testing and Debugging
Computer Science II Lab 3 Testing and Debugging Introduction Testing and debugging are important steps in programming. Loosely, you can think of testing as verifying that your program works and debugging
More informationIntroduction. A Brief Description of Our Journey
Introduction If you still write RPG code as you did 20 years ago, or if you have ILE RPG on your resume but don t actually use or understand it, this book is for you. It will help you transition from the
More informationExercises: Instructions and Advice
Instructions Exercises: Instructions and Advice The exercises in this course are primarily practical programming tasks that are designed to help the student master the intellectual content of the subjects
More informationA developer s guide to load testing
Software architecture for developers What is software architecture? What is the role of a software architect? How do you define software architecture? How do you share software architecture? How do you
More informationThe New Java Technology Memory Model
The New Java Technology Memory Model java.sun.com/javaone/sf Jeremy Manson and William Pugh http://www.cs.umd.edu/~pugh 1 Audience Assume you are familiar with basics of Java technology-based threads (
More informationCS514: Intermediate Course in Computer Systems. Lecture 38: April 23, 2003 Nested transactions and other weird implementation issues
: Intermediate Course in Computer Systems Lecture 38: April 23, 2003 Nested transactions and other weird implementation issues Transactions Continued We saw Transactions on a single server 2 phase locking
More informationBasic Reliable Transport Protocols
Basic Reliable Transport Protocols Do not be alarmed by the length of this guide. There are a lot of pictures. You ve seen in lecture that most of the networks we re dealing with are best-effort : they
More informationComputer Science and Software Engineering University of Wisconsin - Platteville 9-Software Testing, Verification and Validation
Computer Science and Software Engineering University of Wisconsin - Platteville 9-Software Testing, Verification and Validation Yan Shi SE 2730 Lecture Notes Verification and Validation Verification: Are
More informationThe compiler is spewing error messages.
Appendix B Debugging There are a few different kinds of errors that can occur in a program, and it is useful to distinguish between them in order to track them down more quickly. Compile-time errors are
More informationData Representation Type of Data Representation Integers Bits Unsigned 2 s Comp Excess 7 Excess 8
Data Representation At its most basic level, all digital information must reduce to 0s and 1s, which can be discussed as binary, octal, or hex data. There s no practical limit on how it can be interpreted
More informationBuilding Mobile Applications. F. Ricci 2010/2011
Building Mobile Applications F. Ricci 2010/2011 Wireless Software Engineering Model Mobile User Analysis Scenario Analysis Architectural Design Planning Navigation & User Interface Design Maintenance Implementation
More informationProject 1 Balanced binary
CMSC262 DS/Alg Applied Blaheta Project 1 Balanced binary Due: 7 September 2017 You saw basic binary search trees in 162, and may remember that their weakness is that in the worst case they behave like
More informationChapter 3: Google Penguin, Panda, & Hummingbird
Chapter 3: Google Penguin, Panda, & Hummingbird Search engine algorithms are based on a simple premise: searchers want an answer to their queries. For any search, there are hundreds or thousands of sites
More informationCOMP390 (Design &) Implementation
COMP390 (Design &) Implementation Phil (& Dave s) rough guide Consisting of some ideas to assist the development of large and small projects in Computer Science (and a chance for me to try out some features
More informationCS505: Distributed Systems
Cristina Nita-Rotaru CS505: Distributed Systems Protocols. Slides prepared based on material by Prof. Ken Birman at Cornell University, available at http://www.cs.cornell.edu/ken/book/ Required reading
More informationConsensus, impossibility results and Paxos. Ken Birman
Consensus, impossibility results and Paxos Ken Birman Consensus a classic problem Consensus abstraction underlies many distributed systems and protocols N processes They start execution with inputs {0,1}
More informationMicrosoft SQL Server on Stratus ftserver Systems
W H I T E P A P E R Microsoft SQL Server on Stratus ftserver Systems Security, scalability and reliability at its best Uptime that approaches six nines Significant cost savings for your business Only from
More informationDistributed Systems. The main method of distributed object communication is with remote method invocation
Distributed Systems Unit III Syllabus:Distributed Objects and Remote Invocation: Introduction, Communication between Distributed Objects- Object Model, Distributed Object Modal, Design Issues for RMI,
More informationHow Rust views tradeoffs. Steve Klabnik
How Rust views tradeoffs Steve Klabnik 03.04.2019 What is a tradeoff? Bending the Curve Overview Design is about values Case Studies BDFL vs Design By Committee Stability Without Stagnation Acceptable
More informationA Sophomoric Introduction to Shared-Memory Parallelism and Concurrency Lecture 5 Programming with Locks and Critical Sections
A Sophomoric Introduction to Shared-Memory Parallelism and Concurrency Lecture 5 Programming with Locks and Critical Sections Dan Grossman Last Updated: May 2012 For more information, see http://www.cs.washington.edu/homes/djg/teachingmaterials/
More informationECE 669 Parallel Computer Architecture
ECE 669 Parallel Computer Architecture Lecture 9 Workload Evaluation Outline Evaluation of applications is important Simulation of sample data sets provides important information Working sets indicate
More information