Distributed Garbage Collection for Network Objects Presented by Olga Convey Systems Research Center © Digital Equipment Corporation Algorithm by Andrew.

Slides:



Advertisements
Similar presentations
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)
Advertisements

20 February 2004 UKC, February mmnet Summer School Tuesday 20 – Wednesday 21July, 2004, Canterbury Speakers: David Bacon, IBM TJ Watson. Emery.
More on Processes Chapter 3. Process image _the physical representation of a process in the OS _an address space consisting of code, data and stack segments.
Suzuki Kasami Example. Consider 5 Sites S1 S2 S4 S3 S5 n=1 n=2 n=5 n=4 n=
(Chapter 5) Deleting Objects
Brewer’s Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web Services Authored by: Seth Gilbert and Nancy Lynch Presented by:
Distributed System Structures Network Operating Systems –provide an environment where users can access remote resources through remote login or file transfer.
Garbage Collecting the World Bernard Lang Christian Queinnec Jose Piquer Presented by Yu-Jin Chia See also: pp text.
Remote Procedure Call (RPC)
Remote Procedure Call Design issues Implementation RPC programming
Distributed Objects and Remote Invocation
Garbage Collecting the World. --Bernard Lang, Christian and Jose Presented by Shikha Khanna coen 317 Date – May25’ 2005.
Distributed Process Management
Chapter 18 Distributed Process Management Patricia Roy Manatee Community College, Venice, FL ©2008, Prentice Hall Operating Systems: Internals and Design.
Distributed Object & Remote Invocation Vidya Satyanarayanan.
Implementing Remote Procedure Calls Authored by: Andrew D. Birrel and Bruce Jay Nelson Presented by: Terry, Jae, Denny.
Network Operating Systems Users are aware of multiplicity of machines. Access to resources of various machines is done explicitly by: –Logging into the.
Group Communications Group communication: one source process sending a message to a group of processes: Destination is a group rather than a single process.
CS533 - Concepts of Operating Systems 1 Remote Procedure Calls - Alan West.
Implementing Remote Procedure Calls Authors: Andrew D. Birrell and Bruce Jay Nelson Xerox Palo Alto Research Center Presenter: Jim Santmyer Thanks to:
Distributed Process Management
Remote Procedure Calls (RPC) - Swati Agarwal. RPC – an overview Request / reply mechanism Procedure call – disjoint address space clientserver computation.
Memory Allocation and Garbage Collection. Why Dynamic Memory? We cannot know memory requirements in advance when the program is written. We cannot know.
USER LEVEL INTERPROCESS COMMUNICATION FOR SHARED MEMORY MULTIPROCESSORS Presented by Elakkiya Pandian CS 533 OPERATING SYSTEMS – SPRING 2011 Brian N. Bershad.
G Robert Grimm New York University Fine-grained Mobility (in Emerald)
Distributed Systems Fall 2009 Replication Fall 20095DV0203 Outline Group communication Fault-tolerant services –Passive and active replication Highly.
Distributed Systems 2006 Group Membership * *With material adapted from Ken Birman.
The Structuring of Systems Using Upcalls David D. Clark 4/26/20111Frank Sliz, CS533, Upcalls.
16: Distributed Systems1 DISTRIBUTED SYSTEM STRUCTURES NETWORK OPERATING SYSTEMS The users are aware of the physical structure of the network. Each site.
The Structuring of Systems Using Upcalls David D. Clark Presenter: Haitham Gad.
Smart Reference Proxy Provides additional actions whenever an object is referenced (e.g., counting the number of references to the object) Firewall Proxy.
Distributed File Systems
CS533 Concepts of Operating Systems Jonathan Walpole.
Transparent Process Migration: Design Alternatives and the Sprite Implementation Fred Douglis and John Ousterhout.
Implementing Remote Procedure Calls Authored by Andrew D. Birrell and Bruce Jay Nelson Xerox Palo Alto Research Center Presented by Lars Larsson.
Lecture 3 Process Concepts. What is a Process? A process is the dynamic execution context of an executing program. Several processes may run concurrently,
Chapter 4: Interprocess Communication‏ Pages
1 Distributed Process Management Chapter Distributed Global States Operating system cannot know the current state of all process in the distributed.
IS473 Distributed Systems CHAPTER 5 Distributed Objects & Remote Invocation.
Middleware Services. Functions of Middleware Encapsulation Protection Concurrent processing Communication Scheduling.
Remote Procedure Call Andy Wang Operating Systems COP 4610 / CGS 5765.
GLOBAL EDGE SOFTWERE LTD1 R EMOTE F ILE S HARING - Ardhanareesh Aradhyamath.
More Distributed Garbage Collection DC4 Reference Listing Distributed Mark and Sweep Tracing in Groups.
Lecture 4 Mechanisms & Kernel for NOSs. Mechanisms for Network Operating Systems  Network operating systems provide three basic mechanisms that support.
Network Objects Marco F. Duarte COMP 520: Distributed Systems September 14, 2004.
Implementing Remote Procedure Calls Andrew D. Birrell and Bruce Jay Nelson Xerox Palo Alto Research Center Published: ACM Transactions on Computer Systems,
Introduction Contain two or more CPU share common memory and peripherals. Provide greater system throughput. Multiple processor executing simultaneous.
Presented by: JungChun Lu. Goal Propose a design methodology suitable for operating system programs which: Permits synchronous procedure call between.
GC Assertions: Using the Garbage Collector To Check Heap Properties Samuel Z. Guyer Tufts University Edward Aftandilian Tufts University.
Distributed Systems Lecture 8 RPC and marshalling 1.
Distributed Computing & Embedded Systems Chapter 4: Remote Method Invocation Dr. Umair Ali Khan.
The Principles of Operating Systems Chapter 9 Distributed Process Management.
The Structuring of Systems Using Upcalls By David D. Clark Presented by Samuel Moffatt.
Topic 4: Distributed Objects Dr. Ayman Srour Faculty of Applied Engineering and Urban Planning University of Palestine.
Distributed Web Systems Distributed Objects and Remote Method Invocation Lecturer Department University.
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.
Garbage Collecting the World Presentation: Mark Mastroieni Authors: Bernard Lang, Christian Queinne, Jose Piquer.
Process Management Deadlocks.
Module 9: Memory and Resource Management
03 – Remote invoaction Request-reply RPC RMI Coulouris 5
Processes Overview: Process Concept Process Scheduling
Process Description and Control
Programming Models for Distributed Application
Distributed Garbage Collection
Structuring Of Systems Using Upcalls - By David D. Clark
Distribution Infrastructures
Typically for using the shared memory the processes should:
Structuring of Systems using Upcalls
Mr. M. D. Jamadar Assistant Professor
Presentation transcript:

Distributed Garbage Collection for Network Objects Presented by Olga Convey Systems Research Center © Digital Equipment Corporation Algorithm by Andrew Birrell David Evers Greg Nelson Susan Owicki Edward Wobber

2 Algorithm Overview  Generalization of reference counting and reference listing: keeps track of processes referencing object  No global synchronization necessary: pair-wise process communication  Distributed garbage collection utilizes local garbage collection

3 Algorithm Advantages  Practical to implement in Distributed Systems: suitable for a wide range of applications  Balances functionality and performance  Fault-tolerant: Communication failures Process failures Reclaims space from crashed processes  Efficient with low cost overhead: only cost is RPC for the 1 st reference transfer

4 Terms and Definitions  Object – consists of a data object and methods that operate on that object  Network object – is the object shared in DS  Owner – process that allocated the network object  Client – process referencing the object  Concrete object – instance of the object the owner process allocated  Surrogate object – contains methods that invoke RPC to the owner, where methods of the concrete object are invoked.

5 Data Structures w(O) Object table Surrogate Object for O Process Q Client of O w(O) Object table O.dirtySet={Q, …} Concrete Object (O) Process P Owner of O can be a weak reference, or NULL PQ

6 Study #1: Reference Counting 1.Client: calls dirty to the owner 2.Owner: adds client’s ID to O.dirtySet 3.Client:creates surrogate 4.Client:local GC determines when O is no longer used 5.Client:call clean to delete surrogate 6.Owner:when is O.dirtySet empty, delete O clean/dirty operations are idempotent Can detect if client terminates without calling clean Attach sequence numbers to each clean/dirty call

7 Study #1: Reference Counting w(O) Object table Surrogate Object for O Process Q Client of O w(O) Object table Concrete Object (O) Process P Owner of O PQ dirty O.dirtySet={ …}O.dirtySet={Q, …} clean

8 Transmitting a Network Object  Marshalling – passing object references between processes (as arguments or as results).  Concrete object never migrates  May pass objects from client-to-client or owner-to-client  Use wireRep to transfer object references: 1.Unique ID of the owner process 2.Index of the object at the owner Next: example when Process P marshals object O to process Q

9 Study #2: Marshalling 1.X sends Q the wireRep with w(O) 2.Q looks up O in its object table: Is there a local surrogate? 3.Case 1: O is not in Q’s object table, or has a weak reference a.Enter w(O) with a NULL reference b.Call dirty to object owner c.Owner adds Q to O’s dirty set, returns dirty call d.Q creates surrogate object, enters it in object table e.Q sends an acknowledgement to X 4.Case 2: w(O) is there but the mapped to a NULL reference  Surrogate creation in under way, wait until created 5.Case 3: Q finds O with a strong reference in its object table  No surrogate is created

10 Study #3: Deleting a Surrogate Responsibility of client’s local garbage collector: 1.Determines surrogate is unreachable from weak references 2.Replaces weak reference with a special NULL value 3.Schedules a clean-up routine Clean-up routine: 3.Re-checks if reference is still NULL. If not, new surrogate was created and no clean-up required. 4.Remove object table entry 5.Queue a wireRep to be processed later by a cleaning daemon Daemon notifies object’s owner – calls clean to owner Owner removes the client from the object’s O.dirtySet

11 Sequence Number Usage  Use seqno(O, P) to detect out-of-order operations.  Retains highest seqno received from each process P that has ever called dirty/clean operations  1 st : Protect against removing P from O’s dirty set because of a late clean call (asynchronous, may arrive at any time)  2 nd : Protect against adding P to O’s dirty set because of a late dirty call (synchronous with surrogate creation)  Drop P’s seqno when P is removed from dirty set

12 Fault Tolerance Communication Failures:  RPC can indicate operation success or failure  When dirty call fails – no surrogate created, add to cleanup  When clean call fails – leave request in daemon’s queue Will be repeated later, or Will execute when owner’s termination is detected Process Termination:  Detect termination using periodic ping’s  If client doesn’t respond after sufficient time, remove it from owner’s dirty set  Can collect objects with surrogates held by dead processes Risk – may mistake communication failure with a dead process

13 Overall Algorithm Evaluation Benefits: Collects unreachable objects and no others (safe and live) Tolerates process/communication failures Leverages from existing process local garbage collector GC is transparent to programmer (runs in parallel) Low overhead (no excess IPC or synchronization) Limitations:  Cannot collect cycles (programmer’s responsibility)  Race between dirty call and surrogate’s clean call during marshalling (workaround: use ACKs from remote processes)  Risks collecting objects in long-lasting communication failures

14 Distributed Garbage Collection for Network Objects  Questions?