Fine Grained Mobility in the Emerald System ERIC JUL HENRY LEVY NORMAN University of Washington HUTCHINSON and ANDREW BLACK Emerald is an object based language and system designed for the construction of distributed programs An explicit goal of Emerald is support for object mobility objects in Emerald can freely move within the system to take advantage of distribution and dynamically changing environments We say that Emerald has fine grained mobility because Emerald objects can be small data objects as well as process objects Fine grained mobility allows us to apply mobility in new ways but presents implementation problems as well This paper discusses the benefits of tine grained mobility the Emerald language and run time mechanisms that support mobility and techniques for implementing mobility that do not degrade the performance of local operations Performance measurements of the current implementation are included Categories and Subject Descriptors C 2 4 Computer Communications Networks Distributed Systems distributed applications network operating systems D 3 3 Programming Languages Language Constructs tract data types control structures D 4 2 Operating Systems Storage Management distributed memories D 4 4 0perating Systems Communications Managementmessage sending D 4 7 Operating Systems Organization and Design distributed system General Terms Design Languages Measurement Additional Key Words and Phrases Distributed systems process mobility Performance languages object oriented languages object oriented 1 INTRODUCTION Process migration has been implemented or described as a goal of several distributed systems B 11 16 20 23 24 281 In these systems entire address spaces are moved from node to node For example a process manager might initiate a move to share processor load more evenly or users might initiate remote execution explicitly In either case the running process is typically ignorant of its location and unaffected by the move This work was supported in part by the National Science Foundation under grants MCS 8004111 DCR 6420945 and CCR 8700106 by Kebenhavns Universitet University of Copenhagen Denmark under grant J nr 574 2 2 by a Digital Equipment Corporation External Research Grant and by an IBM Graduate Fellowship Authors current addresses E Jul DIKU Dept of Computer Science University of Copenhagen Universitetparken 1 DK 2100 Copenhagen Denmark H Levy University of Washington Dept of Computer Science FR 35 Seattle WA 98195 N Hutchinson Dept of Computer Science University of Arizona Tucson AZ 85721 A Black Digital Equipment Corporation 550 King St Littleton MA 01460 Permission to copy without fee all or part of this material is granted provided that the copies are not made or distributed for direct commercial advantage the ACM copyright notice and the title of the publication and its date appear and notice is given that copying is by permission of the Association for Computing Machinery To copy otherwise or to republish requires a fee and or specific permission 0 1988 ACM 0734 2071 66 0200 0109 01 50 ACM Transactions on Computer Systems Vol 6 No 1 February 1966 Pages 109 133 110 l E Jul H Levy N Hutchinson and A Black During the last three years we have designed and implemented Emerald 6 71 a distributed object based language and system A principal goal of Emerald is to experiment with the use of mobility in distributed programming Mobility in the Emerald system differs from existing process migration schemes in two important respects First Emerald is object based and the unit of distribution and mobility is the object Although some Emerald objects contain processes others contain only data arrays records and single integers are all objects Thus the unit of mobility can be much smaller than in process migration systems Object mobility in Emerald subsumes both process migration and data transfer Second Emerald has language support for mobility Not only does the Emerald language explicitly recognize the notions of location and mobility but the design of conventional parts of the language e g parameter passing is affected by mobility The advantages of process migration which have been noted in previous work include moving objects around the system one can take advantage 1 Load sharing By of lightly used processors 2 Communications performance Active objects that interact intensively can be moved to the same node to reduce the communications cost for the duration of their interaction can be moved to different nodes to provide better failure 3 Availability Objects coverage 4 Reconfiguration Objects can be moved following either a failure or a recovery or prior to scheduled downtime object can move to take advantage of unique 5 Utilizing special capabilities An hardware or software capabilities on a particular node Along with these advantages fine grained benefits mobility provides three additional 1 Data Movement Mobility provides a simple way for the programmer to move data from node to node without having to explicitly package data No separate message passing or file transfer mechanism is required 2 Invocation Performance Mobility has the potential for improving the performance of remote invocation by moving parameter objects to the remote site for the duration of the invocation 3 Garbage Collection Mobility can help simplify distributed garbage collection by moving objects to sites where references exist 16 291 To our knowledge the only other system that implements object mobility in a style similar to Emerald is a recent implementation of distributed Smalltalk 4 In addition to mobility and distribution we intend that Emerald provide efficient execution We want to achieve performance competitive with standard procedural languages in the local case and standard remote procedure call RPC systems in the remote case These goals are not trivial in a locationindependent object based environment To meet them we have relied heavily ACM Transactions on Computer Systems Vol 6 No 1 February 1968 Fine Grained Mobility in the Emerald System l 111 on an appropriate choice of language semantics a tight coupling between the compiler and run time kernel and careful attention to implementation Emerald is not intended to run in large long haul networks We assume a local area network with a modest number of nodes e g 100 In addition we assume that nodes are homogeneous in the sense that they all run the same instruction set and that they are trusted In this paper we concentrate primarily
View Full Document