Aspects and Closures and Promises (Oh My!) Alva L. Couch Tufts University.

Slides:



Advertisements
Similar presentations
An Object/Relational Mapping tool Free and open source Simplifies storage of object data in a relational database Removes the need to write and maintain.
Advertisements

Next Generation Internet by R.S. Chang, Dept. CSIE, NDHU1 Configuring Hosts through DHCP Configuring Hosts through DHCP.
CS425/CSE424/ECE428 – Distributed Systems – Fall 2011 Material derived from slides by I. Gupta, M. Harandi, J. Hou, S. Mitra, K. Nahrstedt, N. Vaidya.
CS425 /CSE424/ECE428 – Distributed Systems – Fall 2011 Material derived from slides by I. Gupta, M. Harandi, J. Hou, S. Mitra, K. Nahrstedt, N. Vaidya.
CSE 486/586, Spring 2014 CSE 486/586 Distributed Systems Reliable Multicast Steve Ko Computer Sciences and Engineering University at Buffalo.
1 Dynamic DNS. 2 Module - Dynamic DNS ♦ Overview The domain names and IP addresses of hosts and the devices may change for many reasons. This module focuses.
6.852: Distributed Algorithms Spring, 2008 Class 7.
Chord: A scalable peer-to- peer lookup service for Internet applications Ion Stoica, Robert Morris, David Karger, M. Frans Kaashock, Hari Balakrishnan.
Towards a Logic for Wide-Area Internet Routing Nick Feamster and Hari Balakrishnan M.I.T. Computer Science and Artificial Intelligence Laboratory Kunal.
DESIGNING A PUBLIC KEY INFRASTRUCTURE
Distributed Systems Fall 2010 Replication Fall 20105DV0203 Outline Group communication Fault-tolerant services –Passive and active replication Highly.
1 Software Testing and Quality Assurance Lecture 12 - The Testing Perspective (Chapter 2, A Practical Guide to Testing Object-Oriented Software)
Database Replication techniques: a Three Parameter Classification Authors : Database Replication techniques: a Three Parameter Classification Authors :
NIS Consistent configuration across the network. Why NIS? Primary reason is to provide same user configuration across the network Users go any machine.
CS 582 / CMPE 481 Distributed Systems Fault Tolerance.
1 IBM SanFrancisco Product Evaluation Negotiated Option Presentation By Les Beckford May 2001.
Group Communications Group communication: one source process sending a message to a group of processes: Destination is a group rather than a single process.
Understanding Replication in Database & Distributed Systems SRDS’ Database Replication Techniques: A Three Parameter Classification M. Wiesmann F.
RFC 2131 DHCP. Dynamic Host Configuration Protocol.
Distributed Systems Fall 2009 Replication Fall 20095DV0203 Outline Group communication Fault-tolerant services –Passive and active replication Highly.
Lecture 13 Synchronization (cont). EECE 411: Design of Distributed Software Applications Logistics Last quiz Max: 69 / Median: 52 / Min: 24 In a box outside.
Hands-On Microsoft Windows Server 2003 Administration Chapter 3 Administering Active Directory.
1 More on Distributed Coordination. 2 Who’s in charge? Let’s have an Election. Many algorithms require a coordinator. What happens when the coordinator.
70-293: MCSE Guide to Planning a Microsoft Windows Server 2003 Network, Enhanced Chapter 7: Planning a DNS Strategy.
Lecture 12 Synchronization. EECE 411: Design of Distributed Software Applications Summary so far … A distributed system is: a collection of independent.
Managing DHCP. 2 DHCP Overview Is a protocol that allows client computers to automatically receive an IP address and TCP/IP settings from a Server Reduces.
Objectives of the Lecture :
Protocol Headers Pre DA SA 0800h … version H L 6 TCP Header Data FCS
Distributed Deadlocks and Transaction Recovery.
Paxos Made Simple Jinghe Zhang. Introduction Lock is the easiest way to manage concurrency Mutex and semaphore. Read and write locks. In distributed system:
Retrievals & Projections Objectives of the Lecture : To consider retrieval actions from a DB; To consider using relational algebra for defining relations;
1 A Modular Approach to Fault-Tolerant Broadcasts and Related Problems Author: Vassos Hadzilacos and Sam Toueg Distributed Systems: 526 U1580 Professor:
1 © NOKIA Web Service Reliability NOKIA. 2 © NOKIA Content What is reliability ? Guaranteed Delivery Duplicate Elimination Ordering Crash tolerance State.
1 CMPT 275 High Level Design Phase Architecture. Janice Regan, Objectives of Design  The design phase takes the results of the requirements analysis.
70-291: MCSE Guide to Managing a Microsoft Windows Server 2003 Network Chapter 7: Domain Name System.
SecureMR: A Service Integrity Assurance Framework for MapReduce Author: Wei Wei, Juan Du, Ting Yu, Xiaohui Gu Source: Annual Computer Security Applications.
Distributed Algorithms – 2g1513 Lecture 9 – by Ali Ghodsi Fault-Tolerance in Distributed Systems.
Architecture styles Pipes and filters Object-oriented design Implicit invocation Layering Repositories.
Allocating IP Addressing by Using Dynamic Host Configuration Protocol (DHCP)
RELATIONAL FAULT TOLERANT INTERFACE TO HETEROGENEOUS DISTRIBUTED DATABASES Prof. Osama Abulnaja Afraa Khalifah
Reliable Communication in the Presence of Failures Based on the paper by: Kenneth Birman and Thomas A. Joseph Cesar Talledo COEN 317 Fall 05.
CSE 486/586, Spring 2013 CSE 486/586 Distributed Systems Replication with View Synchronous Group Communication Steve Ko Computer Sciences and Engineering.
Why Use DHCP? DHCP reduces the complexity and amount of administrative work by using automatic TCP/IP configuration Manual TCP/IP Configuration IP addresses.
Database Design and Management CPTG /23/2015Chapter 12 of 38 Functions of a Database Store data Store data School: student records, class schedules,
Introduction to Problem Solving. Steps in Programming A Very Simplified Picture –Problem Definition & Analysis – High Level Strategy for a solution –Arriving.
© 2008 Cisco Systems, Inc. All rights reserved.Cisco ConfidentialPresentation_ID 1 Digital Networking TOI David Smith
DHCP Meha Modi. “Dynamic Host Configuration Protocol” Automatically assigns IP addresses to devices (I.e. hosts) on your network. -Prevents to enter data.
Architectural Design of Distributed Applications Chapter 13 Part of Design Analysis Designing Concurrent, Distributed, and Real-Time Applications with.
Module 2: Allocating IP Addressing by Using Dynamic Host Configuration Protocol (DHCP)
CSE 60641: Operating Systems Implementing Fault-Tolerant Services Using the State Machine Approach: a tutorial Fred B. Schneider, ACM Computing Surveys.
Chap 15. Agreement. Problem Processes need to agree on a single bit No link failures A process can fail by crashing (no malicious behavior) Messages take.
Two-Phase Commit Brad Karp UCL Computer Science CS GZ03 / M th October, 2008.
Introduction to Active Directory
CSE 486/586, Spring 2012 CSE 486/586 Distributed Systems Replication Steve Ko Computer Sciences and Engineering University at Buffalo.
Modeling change without breaking promises Alva Couch Hengky Susanto Marc Chiarini Tufts University.
An overlay for latency gradated multicasting Anwitaman Datta SCE, NTU Singapore Ion Stoica, Mike Franklin EECS, UC Berkeley
CSE 486/586 CSE 486/586 Distributed Systems Consistency Steve Ko Computer Sciences and Engineering University at Buffalo.
Fusion Design Overview Object Interaction Graph Visibility Graph Class Descriptions Inheritance Graphs Fusion: Design The overall goal of Design is to.
PROCESS RESILIENCE By Ravalika Pola. outline: Process Resilience  Design Issues  Failure Masking and Replication  Agreement in Faulty Systems  Failure.
VCS Building Blocks. Topic 1: Cluster Terminology After completing this topic, you will be able to define clustering terminology.
ITEC1301 Object-Oriented Systems Construction Lecture Notes #4 1.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Storage Systems CSE 598d, Spring 2007 Lecture 13: File Systems March 8, 2007.
Sections 4.1 & 4.2 Recursive Definitions,
Distributed Systems – Paxos
Distributed Consensus
EECS 498 Introduction to Distributed Systems Fall 2017
Outline Announcements Fault Tolerance.
Software Development Process Using UML Recap
Lecture 23 CS 507.
Presentation transcript:

Aspects and Closures and Promises (Oh My!) Alva L. Couch Tufts University

Goals To form a unified theory of system administration To point out similarities and differences between existing theories To suggest next steps

Aspects Embody the idea of constraints needed in order for a system to work properly. –Example: the hostname has to be listed identically in several files in /etc. An aspect is a pair where –P is a set of parameters. –C is a set of constraints on parameter value.

Key ideas of aspects Parameters stored in different locations are considered distinct. Most common constraint is identity: P 1 ==P 2 (note that we mean the values of the parameters, not their names!) Easiest way to manage aspects: generate all configuration data from “one file”, where identity relationships are automatically preserved.

Closures Idea of a closure: a domain of “semantic predictability”. Theoretically, a function F from a set of sequences of inputs to predicted outputs A closure is a function F:Σ*→Σ where –Σ is an alphabet of transactions that can occur –Σ* is the set of all sequences of transactions

Closure structure The definition of a closure is easy. The “structure” of a closure arises from equivalences on Σ*, where we consider g≡h whenever F(g)=F(h) This gives rise to a set of equivalence classes of inputs Σ*/≡, where the members of each class evoke the same response. The “configuration” of a closure can be considered as the equivalence class E ⊆Σ* (under the equivalence relation ≡) corresponding to the inputs received so far.

Closures and aspects If transactions involve selecting parameter values in accordance with constraints, and behaviors are predictable as a result, then an aspect (together with its behavior) forms a closure.

Distributed aspects Many aspects are “distributed” among a network. Example: the identity of the DNS server has to be a server that in actuality provides DNS service. Logic behind generative configuration management: distributed aspects are guaranteed to be correct.

Promises A promise is a commitment to provide service. A → π B: A promises π to B π contains two parts –A “type” T that distinguishes the kind of promise. –Subsidiary data D that further identifies the nature of the promise.

One primitive kind of promise Type T = a parameter name Data D = a parameter value Interpretation: if you set this parameter to this value, “it’ll all work”.

Another kind of promise T=“DNS service” D=“I am a DNS server you could use” You could decide, based upon receiving this promise, whether to bind to that DNS server or not.

Degenerate case: master/slave One host serves as “master”. It “promises” that if everyone conforms to a specific configuration, all will work. X A B C D E F π π π π π π

Distributed masters for differing aspects Natural evolution: one master/aspect (in Paul Anderson’s definition of the word) X Y A B C D

Promise types π: a promise to provide something U(π): an acknowledgement or agreement to use the value contained in π C(π): an agreement to coordinate value of π with another host, so that the two hosts agree on the value of π –A –C(π)→ B means A asks B to coordinate with A on π. B responses that it will coordinate. B responds with values for π (as π is updated).

Promises and closures A promise is something made between agents, not something that exists in an agent by itself. Inside an agent, we want “closure”. Between agents, we have “promises”. Thus there is little meaning to a promise within a closure, but a rather straightforward meaning between closures.

Promises and constraints A promise always –binds the sender with a constraint. –provides an option to the receiver. A promise never –binds or constrains the receiver. –requires a response.

Simple promises A sends π to B. B sends U(π) to A. Thus A and B are bound together. Example: A provides file service, directory service, backup service, etc. B agrees to use service provided by A.

Promises and distributed aspects A promise is a way of communicating constraints to other hosts. It always gives options. So the receiving host may choose between options given. Distributed aspects are satisfied by using only promised services.

Promise theory in action A B C D C( π)

Promise theory in action (2) A B C D C( π) X π U( π) π

Promise theory in action (3) A B C D C( π) X π U( π) V(π) π π π π At the end of this process, all coordinated nodes share service X.

How networks self-organize from promises Servers broadcast promises to serve. Clients receive broadcasts, promise to use. Communities use coordination promises to ensure a consistent environment. Result is bindings that form distributed aspects.

Promises and distributed aspects Promises solve the problem of non- working services and bad bindings. But there is no way to undo a promise! If a host decides not to be a DNS server, must reboot the promise process. Bindings occur at boot time and are not persistent between boots.