Design and Performance of an Asynchronous Method handling Mechanism for CORBA

Similar documents
Designing an Efficient & Scalable Server-side Asynchrony Model for CORBA

The Design and Use of the TAO Asynchronous Method Handling (AMH) Mechanism

Implementing Real-time CORBA with Real-time Java

Institute for Software Integrated Systems Vanderbilt University Nashville, Tennessee

Patterns and Performance of Real-time Middleware for Embedded Systems

Techniques for Enhancing Real-time CORBA Quality of Service

OBJECT ADAPTER ORB CORE I/O SUBSYSTEM. struct RT_Info { wc_exec_time_; period_; importance_; dependencies_; }; 1: CONSTRUCT CALL 6: SUPPLY RUN-TIME

Techniques for Dynamic Swapping in the Lightweight CORBA Component Model

Applying Optimization Principle Patterns to Design Real-Time ORBs

Verteilte Systeme (Distributed Systems)

Middleware Support for Aperiodic Tasks in Distributed Real-Time Systems

An Object-Oriented Invocation Layer for the Java Message Service

The Design and Performance of a Pluggable Protocols Framework for Real-time Distributed Object Computing Middleware

Patterns for Asynchronous Invocations in Distributed Object Frameworks

Software Architectures for Reducing Priority Inversion and Non-determinism in Real-time Object Request Brokers

Recommendations for a CORBA Language Mapping for RTSJ

Real-time & Embedded Systems Workshop July 2007 Building Successful Real-time Distributed Systems in Java

The Design of the TAO Real-Time Object Request Broker

Broker Revisited. Markus Voelter Copyright 2004, Kircher, Voelter, Jank, Schwanninger, Stal D5-1

Distributed Systems. The main method of distributed object communication is with remote method invocation

Performance Evaluation of an Adaptive Middleware Load Balancing and Monitoring Service

Object Interconnections

Chapter 4: Threads. Chapter 4: Threads. Overview Multicore Programming Multithreading Models Thread Libraries Implicit Threading Threading Issues

Latency Reliability Partitioning Ordering Low-level APIs Poor debugging tools Algorithmic decomposition Components Self-contained, ëpluggable" ADTs Fr

CSci Introduction to Distributed Systems. Communication: RPC

Empirical Analysis of Real-Time Java Performance and Predictability

The Design and Performance of a Real-Time CORBA Scheduling Service

Report. Middleware Proxy: A Request-Driven Messaging Broker For High Volume Data Distribution

Capriccio : Scalable Threads for Internet Services

Application of Distributed System in Neuroscience: A Case Study of BCI Framework

Today: Distributed Middleware. Middleware

The Design and Performance of a Real-time CORBA ORB Endsystem

Lecture 8: February 19

Multi-threaded Queries. Intra-Query Parallelism in LLVM

Providing Real-Time and Fault Tolerance for CORBA Applications

Oracle Tuxedo. CORBA Technical Articles 11g Release 1 ( ) March 2010

Patterns and Performance of Real-time Object Request Brokers

Chapter 5: Distributed objects and remote invocation

Today: Distributed Objects. Distributed Objects

Distributed Computing

The Design and Performance of a Real-Time CORBA Scheduling Service

Evaluating Policies and Mechanisms to Support Distributed Real-Time Applications with CORBA

Software Architectures for Reducing Priority Inversion and Non-determinism in Real-time Object Request Brokers

Chapter 4: Threads. Chapter 4: Threads

Java For Real-Time Enterprise Systems Delivering the Benefits of Java to the world of Real-Time distributed object computing

Benchmarking Real-Time and Embedded CORBA ORBs

CAS 703 Software Design

Optimizing the ORB Core to Enhance Real-time CORBA Predictability and Performance

Priya Narasimhan. Assistant Professor of ECE and CS Carnegie Mellon University Pittsburgh, PA

short long double char octet struct Throughput in Mbps Sender Buffer size in KBytes short long double char octet struct

OPERATING SYSTEM. Chapter 4: Threads

Threads SPL/2010 SPL/20 1

Operating System Support

SEDA: An Architecture for Well-Conditioned, Scalable Internet Services

Motivation. Threads. Multithreaded Server Architecture. Thread of execution. Chapter 4

Communication. Distributed Systems Santa Clara University 2016

Lecture 5: Process Description and Control Multithreading Basics in Interprocess communication Introduction to multiprocessors

CSE398: Network Systems Design

Interprocess Communication Tanenbaum, van Steen: Ch2 (Ch3) CoDoKi: Ch2, Ch3, Ch5

The Center for Distributed Object Computing Research Synopsis

A Scalable Event Dispatching Library for Linux Network Servers

Chapter 4: Multithreaded Programming

Separating Access Control Policy, Enforcement, and Functionality in Extensible Systems. Robert Grimm University of Washington

SMD149 - Operating Systems

Patterns and Performance of a CORBA Event Service for Large-scale Distributed Interactive Simulations

CS 403/534 Distributed Systems Midterm April 29, 2004

Distributed Systems Lecture 2 1. External Data Representation and Marshalling (Sec. 4.3) Request reply protocol (failure modes) (Sec. 4.

EI 338: Computer Systems Engineering (Operating Systems & Computer Architecture)

Distributed Objects and Remote Invocation. Programming Models for Distributed Applications

Chapter 10 DISTRIBUTED OBJECT-BASED SYSTEMS

Distributed Scheduling for the Sombrero Single Address Space Distributed Operating System

Chapter 4: Multi-Threaded Programming

On the Use of CORBA in High Level Software Applications at the SLS

A Report on RMI and RPC Submitted by Sudharshan Reddy B

Distributed Object-Based Systems The WWW Architecture Web Services Handout 11 Part(a) EECS 591 Farnam Jahanian University of Michigan.

Chapter 4: Threads. Operating System Concepts 9 th Edit9on

Process Description and Control

SAI/ST course Distributed Systems

Shared Address Space I/O: A Novel I/O Approach for System-on-a-Chip Networking

An Empirical Evaluation of OS Support for Real-time CORBA Object Request Brokers

Distributed Technologies - overview & GIPSY Communication Procedure

The Actor Role Coordinator Implementation Developer s Manual

Distributed systems. Distributed Systems Architectures. System types. Objectives. Distributed system characteristics.

Lecture 5: Object Interaction: RMI and RPC

CHAPTER - 4 REMOTE COMMUNICATION

Performance Evaluation of Java And C++ Distributed Applications In A CORBA Environment

Flash: an efficient and portable web server

EJB ENTERPRISE JAVA BEANS INTRODUCTION TO ENTERPRISE JAVA BEANS, JAVA'S SERVER SIDE COMPONENT TECHNOLOGY. EJB Enterprise Java

Lecture 06: Distributed Object

Introduction. Architecture Overview

Applying Patterns to Design a High-performance, Real-time Pluggable Protocols Framework for OO Communication Middleware

CaDAnCE: A Criticality-aware Deployment And Configuration Engine

The Design and Implementation of Real-Time CORBA 2.0: Dynamic Scheduling in TAO

Using CORBA Middleware in Finite Element Software

Lecture 2 Process Management

Today s class. Scheduling. Informationsteknologi. Tuesday, October 9, 2007 Computer Systems/Operating Systems - Class 14 1

Designing Next-Generation Data- Centers with Advanced Communication Protocols and Systems Services. Presented by: Jitong Chen

Dynamic Fine Grain Scheduling of Pipeline Parallelism. Presented by: Ram Manohar Oruganti and Michael TeWinkle

Enhancing Java RMI with Asynchrony through Reflection

DS 2009: middleware. David Evans

Transcription:

Design and Performance of an Asynchronous Method handling Mechanism for CORBA Mayur Deshpande, Douglas C. Schmidt & Carlos O Ryan {deshpanm,schmidt,coryan}@uci.edu Department of Electrical & Computer Engineering Monday, 09 September 2002 Research Sponsored by AFOSR, ATD, Cisco, DARPA, Raytheon, SAIC, & Siemens

Motivation: Middle-Tier Servers In a multi-tier system, one or more middle-tier servers are placed between a source client & a sink server A source client s two-way request may visit multiple middle-tier servers before it reaches its sink server The result then flows in reverse through these intermediary servers before arriving back at the source client Source Client Source Client Middle-Tier Server Sink Server Sink Server Middle-tier servers are common in both business & realtime/ embedded systems

CORBA Limitations for Middle-Tier Servers Hard to implement scalable & convenient middle-tier servers using standard CORBA Tight coupling between receiving request & returning response in the same activation record: Restricts request/ response pair to a single thread in standard CORBA Not scalable to dedicate a separate thread for each outstanding client request: thread creation context switching synchronization data movement overhead Source Client Middle Tier Server Sink Server 1 5 Middle-Tier Server method() method() 2 4 real_method() real_method() 3

Solution: (AMH) AMH decouples the existing CORBA 1-to-1 association between 1. An incoming request to the runtime stack and 2. The activation record that received the request This design allows a server to return responses asynchronously, without incurring the overhead of multithreading AMH is inspired by 1. The CORBA asynchronous method invocation (AMI) model 2. Continuations : ORB rh : ResponseHandler : Servant : ReplyHandler create() method(rh, in) method(out)

AMH Implementation : Request Asynchronous_upcall_dispatch (2) does not implement functionality to return values to client This functionality is now present in the RH POA interface to dispatch (AMH) skeleton (1) unchanged: 1 POA dispatch ( ) AMH_ Skeleton 2 asynchronous _upcall _dispatch ( ) method_skel ( ) 4 create ( ) ORB_Core 3 Servant_ BASE RH AMH Skeletons can be registered in any POA 5 method (rh, in) AMH_ Servant No new POA policies

AMH Implementation : Reply Base ResponseHandler is responsible for all interactions with the ORB (2,5) Derived RH calls appropriate methods in base RH to initialize/send reply (2,4) Derived RH only implements marshalling of return values (3) Middle Server 1 method (out) 3 RH marshall (out) 2 4 initialize_ reply ( ) send_ reply ( ) Client 5 TAO_AMH _Response _Handler

Design Challenge: Client Transparency Challenge: AMH is a server-side mechanism. Hence it should be completely transparent to clients Solution: AMH Skeleton registers an AMH servant as an implementer of the original (non-amh) interface: _this() returns object reference of original interface Logic to demarshal operation parameters marshaled with stub of original interface generated by IDL compiler into AMH skeleton is_a() in AMH skeleton returns true against test for original interface

Design Challenge: Memory Footprint Challenge: Clients resident in embedded systems that need to contact an AMH server should not pay any memory overhead Solution: Three pronged strategy: 1. All changes to ORB required for AMH confined to server-specific library that pure clients do not link 2. Restrict IDL generated code for AMH mechanism to AMH skeleton files 3. If IDL generated code needed in stub files, make classes in stub files abstract

Benchmark: Testbed 10 Mbps LAN throughout Client Machine Middle-Tier Server SInk-Server Spawns specified concurrent clients Intel XEON Dual @ 1700Mhz, 1GB RAM, RH 7.2 (2.4.7) Forwards requests to sink-server / replies to client Intel P-III @733Mhz, 512 KB RAM, Debian (2.2.18) Replies delayed by specified amount of time Intel P-III Dual @ 733Mhz, 512 KB RAM, Debian (2.4.16)

Benchmark: Test Description Middle Server runs various concurrency models: Thread Per Connection (TPC): One thread created for every new client connection Single Threaded Reactive (TPR-ST): One thread dispatched by Reactive ORB: no threading locks Thread Pool Reactive (TPR- 2): Same as TPR-ST but two threads share the work Single Threaded AMH (AMH-ST): Each request stored in Hash table (RH, Req-ID) Upon receipt of reply, RH extracted from Hash table and invoked Multi Threaded AMH (AMH- MT): Same as AMH-ST but two threads share the work

Benchmark: Client Scalability Test Description: Throughput (requests/sec) of middle-server measured with increasing number of concurrent clients Result Synopsis: Under heavy load, AMH servers deliver highest throughput For light/medium load, AMH servers are slightly below par compared to other models For some cases (more than 300 clients), AMH is only viable option!

Benchmark: Latency Scalability Test Description: Throughput (requests/sec) of middle-server measured with increasing delay (in milliseconds) from sink-server Result Synopsis: Long latency requests: AMH servers deliver highest throughput Short latency: TPR-ST is best. Medium latency: TPC is best. If server model can be dynamically switched, throughput can be made constant across all loads/latencies!

Future Directions Research: Benchmark AMH for Realtime systems: Creating ResponseHandler on the heap may lead to jitter, heap-fragmentation and possible priority inversions Integrate AMH into common middle-tier services such as Load Balancing Service and Event Service Enhancements: Support for operation-level control of AMH as compared to current interface-level control Control over creation policy of ResponseHandlers. Currently, one ResponseHandler is created for each request

Concluding Remarks Middle-tier servers need a scalable asynchronous programming model The current AMI models don t suffice for middle-tier servers For long latency requests or heavily loaded middle-servers, AMH offers a more scalable solution AMH offers tangible benefits for middle-tier servers Our asynchronous method handling (AMH) model supports efficient server-side asynchrony with relatively few changes to CORBA AMH is similar to standard CORBA AMI, focusing on the server rather than the client A paper on AMH is also available www.cs.wustl.edu/~schmidt/pdf/amh_doa- 02.pdf