2001 ©R.P.Martin Using Distributed Data Structures for Constructing Cluster-Based Servers Richard Martin, Kiran Nagaraja and Thu Nguyen Rutgers University.

Slides:



Advertisements
Similar presentations
Distributed Systems Major Design Issues Presented by: Christopher Hector CS8320 – Advanced Operating Systems Spring 2007 – Section 2.6 Presentation Dr.
Advertisements

Christian Delbe1 Christian Delbé OASIS Team INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis November Automatic Fault Tolerance in ProActive.
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science Emery Berger University of Massachusetts Amherst Operating Systems CMPSCI 377 Lecture.
Cache Coherent Distributed Shared Memory. Motivations Small processor count –SMP machines –Single shared memory with multiple processors interconnected.
Error Management with Design Contracts Karlstad University Computer Science Error Management with Design Contracts Eivind J. Nordby, Martin Blom, Anna.
A Dependable Auction System: Architecture and an Implementation Framework
Web Caching Schemes1 A Survey of Web Caching Schemes for the Internet Jia Wang.
Mendosus A SAN-Based Fault Injection Test-Bed for Construction of Highly Available Network Services Xiaoyan Li, Richard Martin, Kiran Nagaraja, Thu D.
Ensuring Non-Functional Properties. What Is an NFP?  A software system’s non-functional property (NFP) is a constraint on the manner in which the system.
Sinfonia: A New Paradigm for Building Scalable Distributed Systems Marcos K. Aguilera, Arif Merchant, Mehul Shah, Alistair Veitch, Christonos Karamanolis.
Scripting Languages For Virtual Worlds. Outline Necessary Features Classes, Prototypes, and Mixins Static vs. Dynamic Typing Concurrency Versioning Distribution.
OCT1 Principles From Chapter One of “Distributed Systems Concepts and Design”
Lecture 36: Programming Languages & Memory Management Announcements & Review Read Ch GU1 & GU2 Cohoon & Davidson Ch 14 Reges & Stepp Lab 10 set game due.
1 Porcupine: A Highly Available Cluster-based Mail Service Yasushi Saito Brian Bershad Hank Levy University of Washington Department of Computer Science.
Homework 2 In the docs folder of your Berkeley DB, have a careful look at documentation on how to configure BDB in main memory. In the docs folder of your.
1 ES 314 Advanced Programming Lec 2 Sept 3 Goals: Complete the discussion of problem Review of C++ Object-oriented design Arrays and pointers.
EASY workshop The Shape of Failure Taliver Heath, Richard Martin and Thu Nguyen Rutgers University Department of Computer Science EASY Workshop July.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
 Introduction Introduction  Definition of Operating System Definition of Operating System  Abstract View of OperatingSystem Abstract View of OperatingSystem.
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
Composite Design Pattern. Motivation – Dynamic Structure.
Cracow Grid Workshop 2003 Institute of Computer Science AGH A Concept of a Monitoring Infrastructure for Workflow-Based Grid Applications Bartosz Baliś,
Introduction to Distributed Programming Per Brand.
Implementation Yaodong Bi. Introduction to Implementation Purposes of Implementation – Plan the system integrations required in each iteration – Distribute.
DISTRIBUTED ALGORITHMS Luc Onana Seif Haridi. DISTRIBUTED SYSTEMS Collection of autonomous computers, processes, or processors (nodes) interconnected.
A Lightweight Platform for Integration of Resource Limited Devices into Pervasive Grids Stavros Isaiadis and Vladimir Getov University of Westminster
CSCA48 Course Summary.
MapReduce: Hadoop Implementation. Outline MapReduce overview Applications of MapReduce Hadoop overview.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
Dynamic Choreographies Safe Runtime Updates of Distributed Applications Ivan Lanese Computer Science Department University of Bologna/INRIA Italy Joint.
Distributed Systems: Concepts and Design Chapter 1 Pages
Putting together a complete system Chapter 10. Overview  Design a modest but complete system  A collection of objects work together to solve a problem.
Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006.
SUMA: A Scientific Metacomputer Cardinale, Yudith Figueira, Carlos Hernández, Emilio Baquero, Eduardo Berbín, Luis Bouza, Roberto Gamess, Eric García,
Scalable Web Server on Heterogeneous Cluster CHEN Ge.
Cracow Grid Workshop, October 27 – 29, 2003 Institute of Computer Science AGH Design of Distributed Grid Workflow Composition System Marian Bubak, Tomasz.
INVITATION TO COMPUTER SCIENCE, JAVA VERSION, THIRD EDITION Chapter 6: An Introduction to System Software and Virtual Machines.
Shared Memory Parallelization of Decision Tree Construction Using a General Middleware Ruoming Jin Gagan Agrawal Department of Computer and Information.
Benchmarking MapReduce-Style Parallel Computing Randal E. Bryant Carnegie Mellon University.
SafetyNet: improving the availability of shared memory multiprocessors with global checkpoint/recovery Daniel J. Sorin, Milo M. K. Martin, Mark D. Hill,
Heavy and lightweight dynamic network services: challenges and experiments for designing intelligent solutions in evolvable next generation networks Laurent.
Software Development. Software Developers Refresher A person or organization that designs software and writes the programs. Software development is the.
INFO 355Week #71 Systems Analysis II User and system interface design INFO 355 Glenn Booker.
Chapter 2: A Brief History Object- Oriented Programming Presentation slides for Object-Oriented Programming by Yahya Garout KFUPM Information & Computer.
Kjell Orsborn UU - DIS - UDBL DATABASE SYSTEMS - 10p Course No. 2AD235 Spring 2002 A second course on development of database systems Kjell.
Ceph: A Scalable, High-Performance Distributed File System
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University IWPSE 2003 Program.
Proxy.
By Jeff Dean & Sanjay Ghemawat Google Inc. OSDI 2004 Presented by : Mohit Deopujari.
Chapter 5 Ranking with Indexes 1. 2 More Indexing Techniques n Indexing techniques:  Inverted files - best choice for most applications  Suffix trees.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
A Binary Agent Technology for COTS Software Integrity Anant Agarwal Richard Schooler InCert Software.
Chapter 1: Preliminaries Lecture # 2. Chapter 1: Preliminaries Reasons for Studying Concepts of Programming Languages Programming Domains Language Evaluation.
Fundamentals of Fault-Tolerant Distributed Computing In Asynchronous Environments Paper by Felix C. Gartner Graeme Coakley COEN 317 November 23, 2003.
Topic 4: Distributed Objects Dr. Ayman Srour Faculty of Applied Engineering and Urban Planning University of Palestine.
Software Architecture
Types for Programs and Proofs
Software Architecture
Lecture 2 of Computer Science II
Jim Fawcett CSE776 – Design Patterns Summer 2003
Closure Representations in Higher-Order Programming Languages
Shared Memory Programming
Background and Motivation
Software Verification and Validation
Software Verification and Validation
Software Verification and Validation
MapReduce: Simplified Data Processing on Large Clusters
Software Architecture
Presentation transcript:

2001 ©R.P.Martin Using Distributed Data Structures for Constructing Cluster-Based Servers Richard Martin, Kiran Nagaraja and Thu Nguyen Rutgers University Department of Computer Science EASY Workshop July 2001

2001 ©R.P.Martin Motivation A Programming large scale internet services is difficult A Brittle, prone to failure  too many components and resulting glue  sub-systems not designed to anticipate failure A Large average-to-peak load difference  Difficult to shed load gracefully

2001 ©R.P.Martin Approach A Build services from a set of Data Structures designed specifically for clusters  Menu of hashes, lists, and trees A Compiler-aided analysis for composition of data structures  Focus on run-time behavior A Fault-injection as validation technique  Observe reaction under controlled fault conditions

2001 ©R.P.Martin Why Data Structures A "It is better to have 100 functions operate on one data structure than have 10 functions operate on 10 data structures"  -Alan Perlman? A Allow service programmer to build services around a few familiar data-structures A Allow system programmers to deal with hard issues such as replication, fault-tolerance and consistency A "Collections for a Cluster"

2001 ©R.P.Martin Why Compiler Analysis A Compiler better at oberserving whole system than programmer A Encode logic to find dangerous conditions  Runtime dangers and static violations A Analogy:  Compiler encodes much performance logic  Compiler encodes fault logic as well  Reports back to programmer problem areas A Aid in composition of structures  E.g. deciding a good recovery point in program

2001 ©R.P.Martin Why Fault Injection A Higher confidence in end-to-end system A Classic testing:  Correct input-> correct output  Incorrect Input -> report error in input A Design for faults, use injection to test design  Correct input + intermediate error->recovery or report error

2001 ©R.P.Martin Data Structures: Research Issues A Can a data structure approach be "easy to use"? A Difficulty of maintaining uniprocessor abstraction a classic problem  trade offs between performance, robustness, uniformity " E.g. Hold a remote reference, then remote node dies A What abstractions balance performance, robustness and usability? A How to compose multiple data structures efficiently?  E.g., each structure individually implement a membership protocol?

2001 ©R.P.Martin Data Structures: Prototyping Approach A Use java environment A Language and run-time system handle tedious programming tasks A Java introduces new challenges  how to control resources when system hides these details?  how to access resources in safe manner through uniform interfaces?

2001 ©R.P.Martin Preliminary Work A Sorted list  Accessible by key & value  Iterate over items in sorted order A "Foundation": multiple B-trees per machine A Meta-data splitter array maintains range info for all nodes  fully replicated  TRM used to keep consistent

2001 ©R.P.Martin Sorted list: Basic Global Value Range->node splitter Local Value Range->tree splitter local B-Trees Node 1 Node 3

2001 ©R.P.Martin Sorted list: Replication Global Value Range->node splitter Local Value Range->tree splitter local B-Trees Authority over range Node 2 Co-Authority Node 1

2001 ©R.P.Martin Sorted list: Load Balancing Global Value Range->node splitter Local Value Range->tree splitter local B-Trees Node 2 Node 1

2001 ©R.P.Martin Compiler Analysis A Types of information  uncaught exceptions  object escapes (like memory leaks)  RMI/JNI calls  thread creation/orphans A How to avoid runtime performance penalty?  combination of static analysis & dynamic profiling

2001 ©R.P.Martin Fault Injection A Validate system using fault injection  add faults to system, observe response A What faults to model?  Where do components become "too detailed"? A Where to emulate faults?  E.g. a lose a packet in the:  Java runtime? Kernel? Wires?

2001 ©R.P.Martin Future Directions A Adaptability  allow group to expand/contract A Recovery  What happens when a node recovers?  How long to wait before handing off data? A Composition  How to build multiple structures in a single app?