51
Distributed Operating System Project Page 1 A. Burtsev, L. Ryzhyk. October 2004 The E1 Distributed Operating System Project Anton Burtsev, Leonid Ryzhyk <antonb,leonidr>@cse.unsw.edu.au October 18, 2004

The E1 Distributed Operating System Projectaburtsev/doc/e1_nicta_talk.pdf · Distributed Operating System Project Requirements Completeness For virtually any object a replication

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: The E1 Distributed Operating System Projectaburtsev/doc/e1_nicta_talk.pdf · Distributed Operating System Project Requirements Completeness For virtually any object a replication

Distributed Operating System Project

Page 1 A. Burtsev, L. Ryzhyk. October2004

The E1 Distributed Operating System Project

Anton Burtsev, Leonid Ryzhyk<antonb,leonidr>@cse.unsw.edu.au

October 18, 2004

Page 2: The E1 Distributed Operating System Projectaburtsev/doc/e1_nicta_talk.pdf · Distributed Operating System Project Requirements Completeness For virtually any object a replication

Distributed Operating System Project

Page 2 A. Burtsev, L. Ryzhyk. October2004

Goals

Page 3: The E1 Distributed Operating System Projectaburtsev/doc/e1_nicta_talk.pdf · Distributed Operating System Project Requirements Completeness For virtually any object a replication

Page 3 A. Burtsev, L. Ryzhyk. October2004

Distributed Operating System Project

E1 Goals

� Provide efficient access to the resources of computer network.

� Implement a convenient programming model, isolating software developers from the intrinsic complexity of asynchronous distributed environment.

Page 4: The E1 Distributed Operating System Projectaburtsev/doc/e1_nicta_talk.pdf · Distributed Operating System Project Requirements Completeness For virtually any object a replication

Distributed Operating System Project

Page 4 A. Burtsev, L. Ryzhyk. October2004

DistributedObjects

Page 5: The E1 Distributed Operating System Projectaburtsev/doc/e1_nicta_talk.pdf · Distributed Operating System Project Requirements Completeness For virtually any object a replication

Page 5 A. Burtsev, L. Ryzhyk. October2004

Distributed Operating System Project

Distributed Object

Distributed Object = (Semantics Object + Replication Object)U

nodes

Page 6: The E1 Distributed Operating System Projectaburtsev/doc/e1_nicta_talk.pdf · Distributed Operating System Project Requirements Completeness For virtually any object a replication

Page 6 A. Burtsev, L. Ryzhyk. October2004

Distributed Operating System Project

Interface 1

SemanticsObject

Node 1

Trivial Case

Distributed Object = Semantics Object

When distributed object is used only in one node:

Page 7: The E1 Distributed Operating System Projectaburtsev/doc/e1_nicta_talk.pdf · Distributed Operating System Project Requirements Completeness For virtually any object a replication

Page 7 A. Burtsev, L. Ryzhyk. October2004

Distributed Operating System Project

Interface 1

SemanticsObject

Node 1

Semantics Object

Semantics object is much like a C++ object, it:� Stores object state

� Implements local object functionality

but ...

Page 8: The E1 Distributed Operating System Projectaburtsev/doc/e1_nicta_talk.pdf · Distributed Operating System Project Requirements Completeness For virtually any object a replication

Page 8 A. Burtsev, L. Ryzhyk. October2004

Distributed Operating System Project

Interface 1

SemanticsObject

Node 1

Semantics Object

Semantics object is much like a C++ object, it:� Stores object data

� Implements local object functionality

but it's accessible only via object interfaces

Page 9: The E1 Distributed Operating System Projectaburtsev/doc/e1_nicta_talk.pdf · Distributed Operating System Project Requirements Completeness For virtually any object a replication

Page 9 A. Burtsev, L. Ryzhyk. October2004

Distributed Operating System Project

Interface 1

SemanticsObject

Node 1 Node 2

Create the first non-localreference on the object

First Reference

Creation of the first non-local referenceinitiates creation of replication objects

Page 10: The E1 Distributed Operating System Projectaburtsev/doc/e1_nicta_talk.pdf · Distributed Operating System Project Requirements Completeness For virtually any object a replication

Page 10 A. Burtsev, L. Ryzhyk. October2004

Distributed Operating System Project

ReplicationObject

Interface 1

SemanticsObject

ReplicationObject

Interface 1

SemanticsObject

Node 1 Node 2

Replication Objects

Reference

A pair of replication and semantics objects is created in each node

Page 11: The E1 Distributed Operating System Projectaburtsev/doc/e1_nicta_talk.pdf · Distributed Operating System Project Requirements Completeness For virtually any object a replication

Page 11 A. Burtsev, L. Ryzhyk. October2004

Distributed Operating System Project

ReplicationObject

Interface 1

SemanticsObject

ReplicationObject

Interface 1

SemanticsObject

ReplicationObject

Interface 1

SemanticsObject

Node 1 Node 2

Node 3

More Nodes...

Page 12: The E1 Distributed Operating System Projectaburtsev/doc/e1_nicta_talk.pdf · Distributed Operating System Project Requirements Completeness For virtually any object a replication

Page 12 A. Burtsev, L. Ryzhyk. October2004

Distributed Operating System Project

ReplicationObject

ReplicationObject

Interface 1

SemanticsObject

ReplicationObject

Interface 1

SemanticsObject

ReplicationObject

Interface 1

SemanticsObject

Node 1 Node 2

Node 3

Object Invocations

SemanticsObject

Page 13: The E1 Distributed Operating System Projectaburtsev/doc/e1_nicta_talk.pdf · Distributed Operating System Project Requirements Completeness For virtually any object a replication

Page 13 A. Burtsev, L. Ryzhyk. October2004

Distributed Operating System Project

ReplicationObject

ReplicationObject

ReplicationObject

ReplicationObject

ReplicationObject

ReplicationObject

Interface 1

SemanticsObject

Interface 1

SemanticsObject

Interface 1

SemanticsObject

Node 1 Node 2

Node 3

Object Invocations

SemanticsObject

SemanticsObject

Page 14: The E1 Distributed Operating System Projectaburtsev/doc/e1_nicta_talk.pdf · Distributed Operating System Project Requirements Completeness For virtually any object a replication

Page 14 A. Burtsev, L. Ryzhyk. October2004

Distributed Operating System Project

Advantages

� Effective separation of object semantics and replication strategy

� No imposed restrictions on the replicationstrategies.

Page 15: The E1 Distributed Operating System Projectaburtsev/doc/e1_nicta_talk.pdf · Distributed Operating System Project Requirements Completeness For virtually any object a replication

Page 15 A. Burtsev, L. Ryzhyk. October2004

Distributed Operating System Project

... Results

� Object functionality can be implemented separately from its replication strategy

� It's possible to select most efficient replication strategy for each object.

Page 16: The E1 Distributed Operating System Projectaburtsev/doc/e1_nicta_talk.pdf · Distributed Operating System Project Requirements Completeness For virtually any object a replication

Distributed Operating System Project

Page 16 A. Burtsev, L. Ryzhyk. October2004

SystemArchitecture

Page 17: The E1 Distributed Operating System Projectaburtsev/doc/e1_nicta_talk.pdf · Distributed Operating System Project Requirements Completeness For virtually any object a replication

Page 17 A. Burtsev, L. Ryzhyk. October2004

Distributed Operating System Project

Generalized Architecture

MicrokernelAddress Spaces, Threads, IPC, Interrupts Dispatching

Execution model and memory managementProtection Domains, Threads, Memory Objects

Component model supportObject Registry, Global Naming, Garbage

Collection, Access Control

Application Objects

Net

wor

k

Node

Gro

up C

omm

unic

atio

n

Page 18: The E1 Distributed Operating System Projectaburtsev/doc/e1_nicta_talk.pdf · Distributed Operating System Project Requirements Completeness For virtually any object a replication

Page 18 A. Burtsev, L. Ryzhyk. October2004

Distributed Operating System Project

Generalized Architecture

MicrokernelAddress Spaces, Threads, IPC, Interrupts Dispatching

Execution model and memory managementProtection Domains, Threads, Memory Objects

Component model supportObject Registry, Global Naming, Garbage

Collection, Access Control

Application Objects

Net

wor

k

Node

Gro

up C

omm

unic

atio

n

Page 19: The E1 Distributed Operating System Projectaburtsev/doc/e1_nicta_talk.pdf · Distributed Operating System Project Requirements Completeness For virtually any object a replication

Page 19 A. Burtsev, L. Ryzhyk. October2004

Distributed Operating System Project

Generalized Architecture

MicrokernelAddress Spaces, Threads, IPC, Interrupts Dispatching

Execution model and memory managementProtection Domains, Threads, Memory Objects

Component model supportObject Registry, Global Naming, Garbage

Collection, Access Control

Application Objects

Net

wor

k

Node

Gro

up C

omm

unic

atio

n

Page 20: The E1 Distributed Operating System Projectaburtsev/doc/e1_nicta_talk.pdf · Distributed Operating System Project Requirements Completeness For virtually any object a replication

Page 20 A. Burtsev, L. Ryzhyk. October2004

Distributed Operating System Project

Generalized Architecture

MicrokernelAddress Spaces, Threads, IPC, Interrupts Dispatching

Execution model and memory managementProtection Domains, Threads, Memory Objects

Component model supportObject Registry, Global Naming, Garbage

Collection, Access Control

Application Objects

Net

wor

k

Node

Gro

up C

omm

unic

atio

n

Page 21: The E1 Distributed Operating System Projectaburtsev/doc/e1_nicta_talk.pdf · Distributed Operating System Project Requirements Completeness For virtually any object a replication

Page 21 A. Burtsev, L. Ryzhyk. October2004

Distributed Operating System Project

Component Services

� Lifecycle control � Object Registry

� Distributed Garbage Collection System

� Global Naming Service� Access Control Server

Page 22: The E1 Distributed Operating System Projectaburtsev/doc/e1_nicta_talk.pdf · Distributed Operating System Project Requirements Completeness For virtually any object a replication

Page 22 A. Burtsev, L. Ryzhyk. October2004

Distributed Operating System Project

Generalized Architecture

MicrokernelAddress Spaces, Threads, IPC, Interrupts Dispatching

Execution model and memory managementProtection Domains, Threads, Memory Objects

Component model supportObject Registry, Global Naming, Garbage

Collection, Access Control

Application Objects

Net

wor

k

Node

Gro

up C

omm

unic

atio

n

Page 23: The E1 Distributed Operating System Projectaburtsev/doc/e1_nicta_talk.pdf · Distributed Operating System Project Requirements Completeness For virtually any object a replication

Page 23 A. Burtsev, L. Ryzhyk. October2004

Distributed Operating System Project

Generalized Architecture

MicrokernelAddress Spaces, Threads, IPC, Interrupts Dispatching

Execution model and memory managementProtection Domains, Threads, Memory Objects

Component model supportObject Registry, Global Naming, Garbage

Collection, Access Control

Application Objects

Gro

up C

omm

unic

atio

n

Net

wor

k

Node

Page 24: The E1 Distributed Operating System Projectaburtsev/doc/e1_nicta_talk.pdf · Distributed Operating System Project Requirements Completeness For virtually any object a replication

Page 2 A. Burtsev, L. Ryzhyk. October2004

Distributed Operating System Project

Replication

Page 25: The E1 Distributed Operating System Projectaburtsev/doc/e1_nicta_talk.pdf · Distributed Operating System Project Requirements Completeness For virtually any object a replication

Page 3 A. Burtsev, L. Ryzhyk. October2004

Distributed Operating System Project

Allow developers to define distributed behaviour of applications without implementing distributed algorithms.

The Goal

� This is in contrast to DSM and RMI -based operating systems, which try to make distribution completely transparent by sacrificing efficiency.

Page 26: The E1 Distributed Operating System Projectaburtsev/doc/e1_nicta_talk.pdf · Distributed Operating System Project Requirements Completeness For virtually any object a replication

Page 4 A. Burtsev, L. Ryzhyk. October2004

Distributed Operating System Project

Defining Distributed Behaviour

In E1 distributed behaviour of an object is defined by:

1. Selecting replication strategy for the object (possibly, at run time)

2. Adjusting replication strategy parameters:� consistency criteria;� required level of redundancy;� object topology (replica placement) ...

Page 27: The E1 Distributed Operating System Projectaburtsev/doc/e1_nicta_talk.pdf · Distributed Operating System Project Requirements Completeness For virtually any object a replication

Page 5 A. Burtsev, L. Ryzhyk. October2004

Distributed Operating System Project

Other Replication Strategy Parameters

� timing properties;� failure detection strategies;� failure-handling policies;� handling of network fragmentations;� network protocol selection;� etc.

Page 28: The E1 Distributed Operating System Projectaburtsev/doc/e1_nicta_talk.pdf · Distributed Operating System Project Requirements Completeness For virtually any object a replication

Page 6 A. Burtsev, L. Ryzhyk. October2004

Distributed Operating System Project

Consistency Criteria

Strict consistency� Sequential

Relaxed consistency� Causal� FIFO� Weak

Timed consistency

Page 29: The E1 Distributed Operating System Projectaburtsev/doc/e1_nicta_talk.pdf · Distributed Operating System Project Requirements Completeness For virtually any object a replication

Page 7 A. Burtsev, L. Ryzhyk. October2004

Distributed Operating System Project

Client/Server Replication

Pros:

+ universal

Cons:

- inefficient

- unreliable

Page 30: The E1 Distributed Operating System Projectaburtsev/doc/e1_nicta_talk.pdf · Distributed Operating System Project Requirements Completeness For virtually any object a replication

Page 8 A. Burtsev, L. Ryzhyk. October2004

Distributed Operating System Project

Passive Replication

Pros:

+ reliability

+ reads are local

Cons:

- updates are not local

Page 31: The E1 Distributed Operating System Projectaburtsev/doc/e1_nicta_talk.pdf · Distributed Operating System Project Requirements Completeness For virtually any object a replication

Page 9 A. Burtsev, L. Ryzhyk. October2004

Distributed Operating System Project

Active Replication

Pros:

+ reliability

+ both reads and updates are local when allowed by consistency criteria

Cons:

- requires deterministic behaviour

- recursive invocations are difficult

Page 32: The E1 Distributed Operating System Projectaburtsev/doc/e1_nicta_talk.pdf · Distributed Operating System Project Requirements Completeness For virtually any object a replication

Page 10 A. Burtsev, L. Ryzhyk. October2004

Distributed Operating System Project

Example of a Real Strategy

A small set of active primary replicas with many stateless client replicas connected to them.

Page 33: The E1 Distributed Operating System Projectaburtsev/doc/e1_nicta_talk.pdf · Distributed Operating System Project Requirements Completeness For virtually any object a replication

Page 11 A. Burtsev, L. Ryzhyk. October2004

Distributed Operating System Project

The Replication Strategies Framework

Network Protocol Stack

Virtually Synchronous Group Communication

Replication Strategies Library

Page 34: The E1 Distributed Operating System Projectaburtsev/doc/e1_nicta_talk.pdf · Distributed Operating System Project Requirements Completeness For virtually any object a replication

Page 12 A. Burtsev, L. Ryzhyk. October2004

Distributed Operating System Project

Network Protocol stack

Network Protocol Stack

Virtually Synchronous GC

Replication Strategies Lib

� Network protocol layer provides at least unreliable unicast primitive.

� However, more advanced primitives, e.g. unreliable multicast or reliable unicast can also be available.

Page 35: The E1 Distributed Operating System Projectaburtsev/doc/e1_nicta_talk.pdf · Distributed Operating System Project Requirements Completeness For virtually any object a replication

Page 13 A. Burtsev, L. Ryzhyk. October2004

Distributed Operating System Project

Virtually Synchronous GC

Network Protocol Stack

Virtually Synchronous GC

Replication Strategies Lib

Implements two types of services:� Group membership service. � Reliable unicast & multicast

message delivery services with various ordering guarantees.

Page 36: The E1 Distributed Operating System Projectaburtsev/doc/e1_nicta_talk.pdf · Distributed Operating System Project Requirements Completeness For virtually any object a replication

Page 14 A. Burtsev, L. Ryzhyk. October2004

Distributed Operating System Project

Group Membership Service

Network Protocol Stack

Virtually Synchronous GC

Replication Strategies LibDetects crashed and recovered object replicas using unreliable failure detector and delivers consistent views of the group of replicas to all its members.

Page 37: The E1 Distributed Operating System Projectaburtsev/doc/e1_nicta_talk.pdf · Distributed Operating System Project Requirements Completeness For virtually any object a replication

Page 15 A. Burtsev, L. Ryzhyk. October2004

Distributed Operating System Project

Message Delivery Service

Network Protocol Stack

Virtually Synchronous GC

Replication Strategies Lib Message ordering properties:� FIFO multicast� Causal multicast� Totally ordered multicast

Page 38: The E1 Distributed Operating System Projectaburtsev/doc/e1_nicta_talk.pdf · Distributed Operating System Project Requirements Completeness For virtually any object a replication

Page 16 A. Burtsev, L. Ryzhyk. October2004

Distributed Operating System Project

Replication Strategies Library

Network Protocol Stack

Virtually Synchronous GC

Replication Strategies Lib

Page 39: The E1 Distributed Operating System Projectaburtsev/doc/e1_nicta_talk.pdf · Distributed Operating System Project Requirements Completeness For virtually any object a replication

Page 17 A. Burtsev, L. Ryzhyk. October2004

Distributed Operating System Project

Requirements

� CompletenessFor virtually any object a replication strategy providing “good” performance can be found in the library.

� CustomizabilityThe developer can further fine-tune application performance by adjusting the replication strategy parameters.

� ExtensibilityNew replication strategies can be easily developed by reusing existing components and design patterns.

Page 40: The E1 Distributed Operating System Projectaburtsev/doc/e1_nicta_talk.pdf · Distributed Operating System Project Requirements Completeness For virtually any object a replication

Page 18 A. Burtsev, L. Ryzhyk. October2004

Distributed Operating System Project

Problem 1

A classical software engineering problem: given a number of related algorithms, construct a framework for unified development, evaluation, utilization and modification of these and similar algorithms.

For example, a similar problem has been successfully solved in the domain of group communication systems (Horus, Transis).

Page 41: The E1 Distributed Operating System Projectaburtsev/doc/e1_nicta_talk.pdf · Distributed Operating System Project Requirements Completeness For virtually any object a replication

Page 19 A. Burtsev, L. Ryzhyk. October2004

Distributed Operating System Project

Problem 2

Under what conditions can two replicated objects (with different replication strategies) interact without breaking the consistency of each other?

� Completely ignored in previous research.

Page 42: The E1 Distributed Operating System Projectaburtsev/doc/e1_nicta_talk.pdf · Distributed Operating System Project Requirements Completeness For virtually any object a replication

Page 20 A. Burtsev, L. Ryzhyk. October2004

Distributed Operating System Project

Serialization Interface

� Any non-trivial replication strategy involves operations requiring serialization/deserialization of object state:� Creation of a new replica;� Migration of existing replica to a new node;� State synchronization (passive replication).

� Objects are required to provide a serialization interface.

Page 43: The E1 Distributed Operating System Projectaburtsev/doc/e1_nicta_talk.pdf · Distributed Operating System Project Requirements Completeness For virtually any object a replication

Page 21 A. Burtsev, L. Ryzhyk. October2004

Distributed Operating System Project

Serialization Interface

� Serialization can be cumbersome.� Languages like Java and C# support automatic

serialization based on RTTI.

� Problem: Implement automatic serialization forobjects written in C/C++

Page 44: The E1 Distributed Operating System Projectaburtsev/doc/e1_nicta_talk.pdf · Distributed Operating System Project Requirements Completeness For virtually any object a replication

Page 22 A. Burtsev, L. Ryzhyk. October2004

Distributed Operating System Project

Object State Components

� Dynamically allocated data;� Static data (global variables);� References to other objects;

Page 45: The E1 Distributed Operating System Projectaburtsev/doc/e1_nicta_talk.pdf · Distributed Operating System Project Requirements Completeness For virtually any object a replication

Page 23 A. Burtsev, L. Ryzhyk. October2004

Distributed Operating System Project

Serializing References

References to other objects can be easily serialized by the operating system

Page 46: The E1 Distributed Operating System Projectaburtsev/doc/e1_nicta_talk.pdf · Distributed Operating System Project Requirements Completeness For virtually any object a replication

Page 24 A. Burtsev, L. Ryzhyk. October2004

Distributed Operating System Project

Object State Components

� Dynamically allocated data;� Static data (global variables);� References to other objects;

Page 47: The E1 Distributed Operating System Projectaburtsev/doc/e1_nicta_talk.pdf · Distributed Operating System Project Requirements Completeness For virtually any object a replication

Page 25 A. Burtsev, L. Ryzhyk. October2004

Distributed Operating System Project

Serializing Dynamic Data

We allow each object to have a separate private heap. Serialization of object dynamic data is then reduced to serialization of the heap.

� Possible only in single address space.� Memory overhead.

� Should be acceptable for medium-grained objects.� For small objects manual serialization is not difficult.

Page 48: The E1 Distributed Operating System Projectaburtsev/doc/e1_nicta_talk.pdf · Distributed Operating System Project Requirements Completeness For virtually any object a replication

Page 26 A. Burtsev, L. Ryzhyk. October2004

Distributed Operating System Project

Object State Components

� Dynamically allocated data;� Static data (global variables);� References to other objects;

Page 49: The E1 Distributed Operating System Projectaburtsev/doc/e1_nicta_talk.pdf · Distributed Operating System Project Requirements Completeness For virtually any object a replication

Page 27 A. Burtsev, L. Ryzhyk. October2004

Distributed Operating System Project

Serializing Static Data

� We allow each object to have a separate copy of writable data segment for each module it depends on.

� It is allocated from the heap on object creationand is serialized/deserialized together with the heap.

� Problem: we have to switch data segment when crossing module and object boundaries.

Page 50: The E1 Distributed Operating System Projectaburtsev/doc/e1_nicta_talk.pdf · Distributed Operating System Project Requirements Completeness For virtually any object a replication

Page 28 A. Burtsev, L. Ryzhyk. October2004

Distributed Operating System Project

Serializing Static Data

We adopt Mungi approach with one modification.� In Mungi all function pointers including C++ virtual method

pointers are extended with global pointer field. � In E1 this would require storing copies of all virtual tables in

object heap.� Instead, we store global pointer together with virtual table

pointer in the object header.

Page 51: The E1 Distributed Operating System Projectaburtsev/doc/e1_nicta_talk.pdf · Distributed Operating System Project Requirements Completeness For virtually any object a replication

Page 29 A. Burtsev, L. Ryzhyk. October2004

Distributed Operating System Project

Thank you