Fine-Grained Mobility in the Emerald System Eric Jul, Henry Levy, Norman Hutchinson, Andrew Black SOSP 1987 & TOCS 1988 Presentation by: norm.

Slides:



Advertisements
Similar presentations
Objects and Classes David Walker CS 320. Advanced Languages advanced programming features –ML data types, exceptions, modules, objects, concurrency,...
Advertisements

COS 461 Fall 1997 Network Objects u first good implementation: DEC SRC Network Objects for Modula-3 u recent implementation: Java RMI (Remote Method Invocation)
Emerald - et OO-språk for distribuerte applikasjoner Eric Jul OMS Professor II.
RPC Robert Grimm New York University Remote Procedure Calls.
Silberschatz and Galvin  Operating System Concepts Module 16: Distributed-System Structures Network-Operating Systems Distributed-Operating.
Distributed System Structures Network Operating Systems –provide an environment where users can access remote resources through remote login or file transfer.
Serverless Network File Systems. Network File Systems Allow sharing among independent file systems in a transparent manner Mounting a remote directory.
Distributed Systems 1 Topics  What is a Distributed System?  Why Distributed Systems?  Examples of Distributed Systems  Distributed System Requirements.
Cache Coherent Distributed Shared Memory. Motivations Small processor count –SMP machines –Single shared memory with multiple processors interconnected.
Objektorienteret Middleware Presentation 2: Distributed Systems – A brush up, and relations to Middleware, Heterogeneity & Transparency.
Network Operating Systems Users are aware of multiplicity of machines. Access to resources of various machines is done explicitly by: –Logging into the.
ECE122 L4: Creating Objects February 8, 2007 ECE 122 Engineering Problem Solving with Java Lecture 4 Creating and Using Objects.
Fine-Grained Mobility in the Emerald System Eric Jul, Henry Levy, Norman Hutchinson, Andrew Black SOSP, 1987 & TOCS, 1988.
OCT1 Principles From Chapter One of “Distributed Systems Concepts and Design”
G Robert Grimm New York University Fine-grained Mobility (in Emerald)
G Robert Grimm New York University Fine-grained Mobility (in Emerald)
Chapter 10-Arithmetic-logic units
The environment of the computation Declarations introduce names that denote entities. At execution-time, entities are bound to values or to locations:
Case Study: The E1 Distributed Operating System Chris Krentz 3/20/2007.
16: Distributed Systems1 DISTRIBUTED SYSTEM STRUCTURES NETWORK OPERATING SYSTEMS The users are aware of the physical structure of the network. Each site.
Emerald - et OO-språk for distribuerte applikasjoner Eric Jul OMS Professor II.
1 The Google File System Reporter: You-Wei Zhang.
1 Lecture 20: Parallel and Distributed Systems n Classification of parallel/distributed architectures n SMPs n Distributed systems n Clusters.
CS 403: Programming Languages Lecture 2 Fall 2003 Department of Computer Science University of Alabama Joel Jones.
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Bộ môn Mạng và Truyền Thông Máy Tính.
5.1 Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED.
Emerald - et OO-språk for distribuerte applikasjoner Review – Concurrency - Mobility Eric Jul OMS Professor II.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Other Topics RPC & Middleware.
Data Structures Week 6 Further Data Structures The story so far  We understand the notion of an abstract data type.  Saw some fundamental operations.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
Distributed Systems: Concepts and Design Chapter 1 Pages
Emerald - et OO-språk for distribuerte applikasjoner Eric Jul OMS Professor II.
Operating Systems COMP 4850/CISG 5550 Page Tables TLBs Inverted Page Tables Dr. James Money.
Advanced Computer Networks Topic 2: Characterization of Distributed Systems.
Page 1 Remote Procedure Calls Paul Krzyzanowski Distributed Systems Except as otherwise noted, the content of this presentation.
Presented By: Samreen Tahir Coda is a network file system and a descendent of the Andrew File System 2. It was designed to be: Highly Highly secure Available.
CORBA1 Distributed Software Systems Any software system can be physically distributed By distributed coupling we get the following:  Improved performance.
Emerald - et OO-språk for distribuerte applikasjoner Review – Concurrency - Mobility Eric Jul OMS Professor II.
1. Outline  Introduction  Different Mechanisms Broadcasting Multicasting Forward Pointers Home-based approach Distributed Hash Tables Hierarchical approaches.
I MPLEMENTING FILES. Contiguous Allocation:  The simplest allocation scheme is to store each file as a contiguous run of disk blocks (a 50-KB file would.
1 Chapter 38 RPC and Middleware. 2 Middleware  Tools to help programmers  Makes client-server programming  Easier  Faster  Makes resulting software.
Computer Science Lecture 3, page 1 CS677: Distributed OS Last Class: Communication in Distributed Systems Structured or unstructured? Addressing? Blocking/non-blocking?
Java Distributed Object Model A remote object is one whose methods can be invoked from another JVM on a different host. It implements one or more remote.
Chapter Five Distributed file systems. 2 Contents Distributed file system design Distributed file system implementation Trends in distributed file systems.
Operating Systems Distributed-System Structures. Topics –Network-Operating Systems –Distributed-Operating Systems –Remote Services –Robustness –Design.
Lecture 5: RPC (exercises/questions). 26-Jun-16COMP28112 Lecture 52 First Six Steps of RPC TvS: Figure 4-7.
Object Interaction: RMI and RPC 1. Overview 2 Distributed applications programming - distributed objects model - RMI, invocation semantics - RPC Products.
Object Interaction: RMI and RPC 1. Overview 2 Distributed applications programming - distributed objects model - RMI, invocation semantics - RPC Products.
Sung-Dong Kim, Dept. of Computer Engineering, Hansung University Java - Introduction.
A Single Intermediate Language That Supports Multiple Implemtntation of Exceptions Delvin Defoe Washington University in Saint Louis Department of Computer.
5.2 FLAT NAMING.
Distributed Objects.
CSE 451: Operating Systems Winter Module 22 Distributed File Systems
Eric Jul OMS Professor II
Distributed File Systems
Distributed File Systems
CSE 451: Operating Systems Spring Module 21 Distributed File Systems
Distributed File Systems
CSE 451: Operating Systems Winter Module 22 Distributed File Systems
Emerald.
Emerald - et OO-språk for distribuerte applikasjoner
Distributed File Systems
Lecture 6: RPC (exercises/questions)
Lecture 7: RPC (exercises/questions)
Distributed File Systems
Distributed Systems and Concurrency: Distributed Systems
Presentation transcript:

Fine-Grained Mobility in the Emerald System Eric Jul, Henry Levy, Norman Hutchinson, Andrew Black SOSP 1987 & TOCS 1988 Presentation by: norm

Short summary A solution in search of a problem! We can send objects anywhere, almost for free, but why would you want to?

Goals Experiment with mobility in distributed systems –Objects, not processes –Language, not system support Single object model Excellent local performance Two Ph.D. theses!

Benefits Process migration –Load sharing –Communications performance –Availability –Reconfiguration –Specialized hardware + object migration –Data movement –Invocation performance –Garbage collection

Objects Name Representation Operations Process (optional)

Types Abstract (think Java interface) Concrete (think Java class) Conformity is proved by the system rather than declared by the programmer Objects are self-describing –don’t need classes

Mobility Locate Move Fix Unfix Refix Attach Call by move / visit

Gore Processes and mobility –Stack ripping Global, local and direct objects Object location – forwarding chains OIDs, pointers, templates, and swizzling –Registers

Example const start <- object start process const all <- (locate self).getActiveNodes for i : Integer <- 0 while i <= all.upperbound by i <- i + 1 const m <- Manager.create[self] move m to all[i].getTheNode all[i].getTheNode.getStdout.PutString["Created manager here\n"] end for end process end start

Alternative Example const start <- object start process const all <- (locate self).getActiveNodes for i : Integer <- 0 while i <= all.upperbound by i <- i + 1 move self to all[i].getTheNode (locate self).getStdout.PutString["Created manager here\n"] const m <- Manager.create[self] end for end process end start

Performance Local invocation 19.4 μsec C: 13.4 μsec CE: 16.4 μsec Remote invocation 27.9 msec + 1 parameter 3.1 msec + 1 call by move/visit parameter ~5 msec Migration 12 msec + process: 28 msec

Performance (2007) Local invocation 0.67 μsec C: 0.02 μsec Remote invocation 0.37 msec + 1 parameter 0.01 msec Migration 0.37 msec + process: 0.11 msec

Discussion

Stack ripping During a process move, the entire stack is ripped, the object pulled out and then re- assembled on a different machine. Does this happen for call-on-visit as well? If so, is the stack now brought back to the original state by once again ripping at the same locations and re-inserting the object there? Is this really a good idea?

Yet another language? Which language is the Emerald language based on? If it is a new language, will many users want to use it? Why not just extend the functionality of a compiler for an existing language?

Scalability The most questionable thing is the scalability of Emerald. Since the unit of distribution and mobility is the object, and objects as described here are not lightweight, do you think this scheme will be scalable when dealing with a heavy workload?

Scalability (II) Some assumptions of Emerald are not true today. For example, in today's data centers, we can have more than 1000s of machines which may have different ISAs. Do you think the programming paradigm of Emerald is still suitable for today's cluster/data center?

Fault Tolerance Is it the programmer’s responsibility to implement the fault tolerance mechanisms in this system? Is there any way that the system can provide that?

Object replication Is it possible to have two nodes working on the same object? Say if one of them wanted to do a side-effect free operation (like printing out the values in an array) and the other was wanting to update some internal structures?

Residual dependencies Can the residual dependencies be avoid in order to improve performance? Otherwise there are still some object migrations which are wasteful.

Object location The object location mechanism in Emerald system is based on forwarding addresses. Why not just keep a directory of nodes referencing objects?

How much transparency? Emerald makes it easy to ignore where your objects are, is this a good idea in a distributed system? How does location transparency affect failures?

Historical excuses? The authors state ‘historical reasons’ for using network communication routines that are slow. Is this a good reason? How often are things done ‘for historical reasons’?