j icos’s abstract distributed service component peter cappello computer science department uc...
TRANSCRIPT
JICOS’s Abstract Distributed Service Component
Peter Cappello
Computer Science Department
UC Santa Barbara
2
Introduction
• Designing distributed systems correctly is
hard.
• Object-orientation simplifies design.
• Reusable classes increase productivity.
• Abstraction leads to reusable classes.
• We contribute an abstract distributed service
component (ADSC).
3
Introduction …
• Focus on some design issues.
• Why present this?– The design is non-trivial.– Enhancements described in terms of base
design.– Different implementations benefit from
issue elucidation.– The code can be downloaded:
http://cs.ucsb.edu/projects/jicos
4
JICOS’s Architecture
JICOS is designed to:
• Support scalable, adaptively parallel
computation
• Tolerate basic faults
• Hide communication latency
5
JICOS’s Architecture …
JICOS comprises 3 service component classes:
• Hosting Service Provider (HSP):
– clients interact solely with the HSP.
– HSP manages other service components
• Task server
– A task space
• Host
– Executes tasks
6
HostingServiceProvider
Client
Architecture …
7
Issue Priority
• Correctness
• Elegant Object-Oriented Design
• Programmability
• Performance
• Reliability
• Administrable
• Security
8
The ADSC is ServiceImpl
ServiceImpl Service
Host Hsp TaskServer
9
Anatomy of an ADSC
A finite state machine
• Receives commands from peer
services
• For each command:
– [Update its state]
– [Output command[s] to peer services]
FiniteState
MachineWith Output
CommandCommandCommand
CommandCommandCommand
10
Anatomy of an ADSC
STATE
COMMANDS COMMANDSCommandProcessor
11
RMI Thread executing
receiveCommands()
InputCommand
Queue
OutputCommand
Queue
CommandProcessorThread
Threadinvoking
receiveCommands()
Anatomy of an ADSCDecouple communication from computation
via multi-threading
OutputCommand
Queue
OutputCommand
Queue
RMI Thread executing
receiveCommands()
RMI Thread executing
receiveCommands()
12
RMI Thread executing
receiveCommands()
InputCommand
Queue
CommandProcessor
Threadinvoking
receiveCommands()
Outputcommand
queue
Outputcommand
queue
OutputCommand
Queue
RMI Thread executing
receiveCommands()
RMI Thread executing
receiveCommands()
13
RMI Thread executing
receiveCommands()
InputCommand
Queue
OutputCommand
Queue
CommandProcessorThread
Threadinvoking
receiveCommands()
Anatomy of an ADSCImprove network & processor efficiency
via multi-threading
OutputCommand
Queue
OutputCommand
Queue
RMI Thread executing
receiveCommands()
RMI Thread executing
receiveCommands()
CommandProcessorThread
CommandProcessorThread
Threadinvoking
receiveCommands()
Threadinvoking
receiveCommands()
14
State
InputCommand
Queue
CommandProcessor
Outputqueue
CommandProcessorCommandProcessors
OutputqueueOutput
CommandQueues
Department
Anatomy of an ADSCPartitioning Command Classes
15
State
CommandProcessor
Outputqueue
CommandProcessorDepartments
OutputqueueOutput
CommandQueues
Service Component
RMI Thread executing
receiveCommands()
RMI Thread executing
receiveCommands()
RMI Threadsexecuting
receiveCommands()
RMI Thread executing
receiveCommands()
RMI Thread executing
receiveCommands()
Threadsinvoking
receiveCommands()
16
CommandProcessor
ProcessorCommunication
Processor
CommunicationProcessor
Pool
Department Q MailProxy
Manager
ServiceCommand
CommandList ServiceImpl
Proxy
CommandSynchronous
17
0.86
0.88
0.9
0.92
0.94
0.96
0.98
1
1.02
PROCESSORS
% P
ER
FE
CT
SP
EE
DU
P
Series1
Series1 1 0.98 0.97 0.97 0.96 0.92 0.91
1 2 4 8 16 32 52
JICOS Speedup:150-City TSP 1 processor: 6 hours, 18 minutes52 processors: 8 minutes
18
Thanks!
Questions?
http://cs.ucsb.edu/projects/jicos
19