Design of a Real-Time Distributed Shared Data Space
-
Upload
justin-kaufman -
Category
Documents
-
view
26 -
download
2
description
Transcript of Design of a Real-Time Distributed Shared Data Space
Rob Spoor
Design of a Real-Time Distributed Shared Data Space
AKA Real-time GSpace
Introduction• Shared Data Space • GSpace• RGSpace Issues• CORBA / TAO• RGSpace Architecture• Scheduling• RGSpace Global Design• Conclusion
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))
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
GSpace Overview
application
middleware
network
node1
GSpace
Kernel
node2
GSpace
Kernel
noden
GSpace
Kernel ...
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
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
Real-time GSpace: RGSpace• Add timing constraints to actions
• Focus on predictability, not performance
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
Examples of Timing Constraints• read((Rob, int ?)) must be finished within 15ms
• put((temperature)) will occur every 100ms, and must be finished within 10ms
Examples of Policies for Handling Timing Errors
• Reschedule to fit
• Reject new task
• Shut down RGSpace
• ???
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
TAO ORB Architecture
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
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
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
RGSpace Design Decisions• Limit to periodic actions
• Use rate monotonic / deadline monotonic
• Limit the size of the 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
Denying an Action
Controller Scheduler Error Handler
schedule new thread
not schedulable
handle not schedulable
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
Intermediate Conclusions• Scheduling
• Real-time CORBA
• Real-time OS
• Real-time networking
• Real-time JAVA
• Real-time (distributed) databases
Plans for Completing this Project• Implement for one machine only (no network)
• Extend for multiple machines (networked)
• Write my report
• ???
Questions?