Design of a Real-Time Distributed Shared Data Space

23
Rob Spoor Design of a Real-Time Distributed Shared Data Space AKA Real-time GSpace

description

Design of a Real-Time Distributed Shared Data Space. Rob Spoor. AKA Real-time GSpace. Introduction. Shared Data Space GSpace RGSpace Issues CORBA / TAO RGSpace Architecture Scheduling RGSpace Global Design Conclusion. Shared Data Space Model. Model Overview. A. B. C. - PowerPoint PPT Presentation

Transcript of Design of a Real-Time Distributed Shared Data Space

Page 1: Design of a Real-Time Distributed Shared Data Space

Rob Spoor

Design of a Real-Time Distributed Shared Data Space

AKA Real-time GSpace

Page 2: Design of a Real-Time Distributed Shared Data Space

Introduction• Shared Data Space • GSpace• RGSpace Issues• CORBA / TAO• RGSpace Architecture• Scheduling• RGSpace Global Design• Conclusion

Page 3: Design of a Real-Time Distributed Shared Data Space

Shared Data Space ModelModel Overview

shared data space

A B C

actions: read, put, take

tuple: ordered sequence of typed fields with specified values(str name, int age) - put ((Rob, 25))

template: ordered sequence of typed fields with or without a specified value (str name, int age) - read ((Rob, int ?)), take ((str ?, 25))

Page 4: Design of a Real-Time Distributed Shared Data Space

Shared Data Space Features• Uncoupling in time – no need to be online at the

same time

• Uncoupling in space – no need to know each other, only the data

• Computation is separated from coordination

Page 5: Design of a Real-Time Distributed Shared Data Space

GSpace Overview

application

middleware

network

node1

GSpace

Kernel

node2

GSpace

Kernel

noden

GSpace

Kernel ...

Shared data space

Page 6: Design of a Real-Time Distributed Shared Data Space

Separating Concerns in GSpace

Implementation

mapping

Middleware

Distribution Policy Descriptor

Component ApplicationLayer

MiddlewareLayer

OS and Network NW LevelLayer

Specification

downloading

FunctionalityComputation

DistributionRequirements

Coordination

Page 7: Design of a Real-Time Distributed Shared Data Space

GSpace Kernel StructureApplication

Layer

MiddlewareLayer

Low LevelLayer

GSpaceKernel

DistributionManager

Dynamic PolicySelector

Operating System - Network Interface

Application Component

Controller

GSpace API

putreadtake

Data SpaceSlice

CommunicationModule

PolicyTable

System Boot

ConnectionManager

DistributionPolicy

Descriptordownload

PolicyDescriptor

Loader

Page 8: Design of a Real-Time Distributed Shared Data Space

Real-time GSpace: RGSpace• Add timing constraints to actions

• Focus on predictability, not performance

Page 9: Design of a Real-Time Distributed Shared Data Space

Separating Concerns in RGSpace

Implementation

mapping

Middleware

Distribution Policy Descriptor

Component ApplicationLayer

MiddlewareLayer

OS and Network NW LevelLayer

Specification

downloading

FunctionalityComputation

DistributionRequirements

Coordination

TimingRequirements

Timing Timing Constraints Desc.

Timing ErrorHandling

Timing Errors Error Handler Descriptor

Page 10: Design of a Real-Time Distributed Shared Data Space

Examples of Timing Constraints• read((Rob, int ?)) must be finished within 15ms

• put((temperature)) will occur every 100ms, and must be finished within 10ms

Page 11: Design of a Real-Time Distributed Shared Data Space

Examples of Policies for Handling Timing Errors

• Reschedule to fit

• Reject new task

• Shut down RGSpace

• ???

Page 12: Design of a Real-Time Distributed Shared Data Space

Real-time CORBA: TAO• TAO: The ACE ORB• TAO Subsystems:

– I/O Subsystem– Run-time Scheduler– ORB Core– Object Adapter– Stubs and Skeletons– Memory Manager– QoS API

Page 13: Design of a Real-Time Distributed Shared Data Space

TAO ORB Architecture

Page 14: Design of a Real-Time Distributed Shared Data Space

RGSpace Kernel StructureApplication

Layer

MiddlewareLayer

Low LevelLayer

RGSpaceKernel

DistributionManager

Dynamic PolicySelector

Operating System - Network Interface

Application Component

Controller

RGSpace API

putreadtake

Data SpaceSlice

CommunicationModule

PolicyTables

System Boot

ConnectionManager

PolicyDescriptorsdownload

PolicyDescriptor

Loader

PolicyTables

Thread Pool

Scheduler

Page 15: Design of a Real-Time Distributed Shared Data Space

RGSpace Kernel Flow of ControlApplication

Layer

MiddlewareLayer

Low LevelLayer

RGSpaceKernel

DistributionManager

Dynamic PolicySelector

Operating System - Network Interface

Application Component

Controller

Data SpaceSlice

CommunicationModule

PolicyTables

System Boot

ConnectionManager

PolicyDescriptorsdownload

PolicyDescriptor

Loader

PolicyTables

Thread Pool

Scheduler

Page 16: Design of a Real-Time Distributed Shared Data Space

RGSpace Processes / Threads

DistributionManager

Dynamic PolicySelector

Controller

Data SpaceSlice

CommunicationModule

ConnectionManager

Thread Pool

OS Scheduler

Application other OS tasks

Incoming requests

RGSpace Kernel Scheduler

DistributionManager

Dynamic PolicySelector

Data SpaceSlice

CommunicationModule

Acceptance test Scheduling policy

Page 17: Design of a Real-Time Distributed Shared Data Space

RGSpace Design Decisions• Limit to periodic actions

• Use rate monotonic / deadline monotonic

• Limit the size of the data space

Page 18: Design of a Real-Time Distributed Shared Data Space

Accepting an ActionApplication Component

Controller Timing Constraints

Dynamic Policy Descriptor

Thread Pool SchedulerError Handlers

read/put/take

insert thread

schedule new thread

read/put/take

map action

fetch

fetch

create distribution manager

time needed for the action

schedulable

Page 19: Design of a Real-Time Distributed Shared Data Space

Denying an Action

Controller Scheduler Error Handler

schedule new thread

not schedulable

handle not schedulable

Page 20: Design of a Real-Time Distributed Shared Data Space

Handling an ActionApplication Component

Action Thread Dynamic Policy Descriptor

Distribution Manager

Data Space Slice

Network

read/put/take

select distribution manager

read/put/takeread/put/take

tuple

read/put/take

tuple

tuple

tuple

tuple

Page 21: Design of a Real-Time Distributed Shared Data Space

Intermediate Conclusions• Scheduling

• Real-time CORBA

• Real-time OS

• Real-time networking

• Real-time JAVA

• Real-time (distributed) databases

Page 22: Design of a Real-Time Distributed Shared Data Space

Plans for Completing this Project• Implement for one machine only (no network)

• Extend for multiple machines (networked)

• Write my report

• ???

Page 23: Design of a Real-Time Distributed Shared Data Space

Questions?