1 / 19

Designing Scalable and Fault-Tolerant Distributed Systems with JICOS Abstract Service Component

JICOS provides an architecture for designing scalable and adaptively parallel distributed systems. This paper discusses the challenges of designing distributed systems, emphasizing the benefits of object-oriented design and abstraction in enhancing productivity and reliability. JICOS comprises three key components: the Hosting Service Provider, task servers, and communication protocols, which together improve performance, adaptability, and fault tolerance. The abstract distributed service component (ADSC) architecture is examined, exploring its command structure and multi-threading capabilities to enhance network and processor efficiency.

devika
Télécharger la présentation

Designing Scalable and Fault-Tolerant Distributed Systems with JICOS Abstract Service Component

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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. • Presenting … 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. • Download the foundation package: https://github.com/charlesmunger/jpregel-aws http://cs.ucsb.edu/projects/jicos

  4. Jicos Architecture Jicos is designed to: • Support scalable, adaptively parallel computation • Tolerate basic faults • Hide communication latency

  5. Jicos 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. Architecture … Hosting Service Provider Client

  7. Correctness Elegant Object-Oriented Design Programmability Performance Reliability Administratable Security Issue Priority

  8. The ADSC is ServiceImpl Service ServiceImpl Host Hsp TaskServer

  9. Anatomy of an ADSC Command • A finite state machine • Takes commands from neighbor service components as input • For each command: • Update its state • Output command[s] to neighbor service components. Command Command Finite State Machine With Output Command Command Command

  10. Anatomy of an ADSC Command Processor COMMANDS COMMANDS STATE

  11. Anatomy of an ADSC Decouple communication from computation via multi-threading RMI Thread executing receiveCommands() Command Processor Thread Thread invoking receiveCommands() RMI Thread executing receiveCommands() RMI Thread executing receiveCommands() Input Command Queue Output Command Queue Output Command Queue Output Command Queue

  12. Input Command Queue RMI Thread executing receiveCommands() Command Processor Thread invoking receiveCommands() RMI Thread executing receiveCommands() RMI Thread executing receiveCommands() Output command queue Output command queue Output Command Queue

  13. Anatomy of an ADSC Improve network & processor efficiency via multi-threading RMI Thread executing receiveCommands() Command Processor Thread Thread invoking receiveCommands() RMI Thread executing receiveCommands() Command Processor Thread Thread invoking receiveCommands() RMI Thread executing receiveCommands() Command Processor Thread Thread invoking receiveCommands() Input Command Queue Output Command Queue Output Command Queue Output Command Queue

  14. Anatomy of an ADSC Partitioning Command Classes Department Input Command Queue Command Processor Output queue Command Processor Output queue Command Processors Output Command Queues State

  15. Service Component State RMI Thread executing receiveCommands() Command Processor RMI Thread executing receiveCommands() Command Processor RMI Threads executing receiveCommands() Departments Output queue RMI Thread executing receiveCommands() Output queue RMI Thread executing receiveCommands() Output Command Queues Threads invoking receiveCommands()

  16. Command Processor Processor Communication Processor Communication Processor Pool Mail Proxy Manager Department Q Command Service Proxy Command List ServiceImpl Command Synchronous

  17. JANET Speedup:150-City TSP 1 processor: 6 hours, 18 minutes 52 processors: 8 minutes 16K Tasks, average task time: 1.5 seconds

  18. Thanks!Questions? http://cs.ucsb.edu/projects/jicos

More Related