1 <!DOCTYPE HTML PUBLIC
"-//W3C//DTD HTML 4.0 Transitional//EN">
4 <title>ORB Core Status
</title>
7 <body text=
"#000000" bgcolor=
"#FFFFFF">
9 <!-- *********************************** -->
10 <a name=
"toc"><h2>Table of Contents
</h2></a>
12 <li><a href=
"#current">Current Status
</a>
13 <li><a href=
"#issues">Known Issues
</a>
14 <li><a href=
"#ongoing">Ongoing work
</a>
15 <li><a href=
"#future">Future Work
</a>
16 <li><a href=
"#completed">Completed Work
</a>
18 <!-- *********************************** -->
22 <h1> <a name=
"orb"></a>ORB
& ORB Core
</h1>
24 Point of contact:
<a href=
"mailto: bala@cs.wustl.edu">Balchandran Natarajan
</a>
28 <!-- ============================================================ -->
29 <a name=
"current"><h3>Current status:
</h3></a>
33 <li><p>We are compliant with OMG's CORBA
2.6 specification.
</p>
38 <!-- --------------------- -->
39 <a href=
"#toc">Back to TOC
</a>
40 <!-- --------------------- -->
42 <!-- ============================================================ -->
43 <a name=
"issues"><h3>Known issues:
</h3></a>
46 <li><p> TAO's support for wstring as per GIOP
1.2 rules are not
47 perfect. There have been reported interoperability
50 <li><p> The multi-profile parsing code in TAO hasnt been tested well
51 and we have been able to identify some issues with it. The
52 details are documented in our
<A
53 HREF=
"http://bugzilla.dre.vanderbilt.edu/index.cgi">bug tracking
54 system
</A> under id's
<A
55 HREF=
"http://bugzilla.dre.vanderbilt.edu/show_bug.cgi?id=1237">1237</A>,
<A
56 HREF=
"http://bugzilla.dre.vanderbilt.edu/show_bug.cgi?id=1238">
58 HREF=
"http://bugzilla.dre.vanderbilt.edu/show_bug.cgi?id=1239">1239</A> <p></li>
60 <li><p> Applications using the distributed callback paradigm could
61 see crashes if they use multiple nested upcalls. The nested
62 upcalls sets of a stack growth and crashes when it runs out of
63 stack space. This happens when an upcall as a part of the
64 request leads to another request. The client thread waiting for
65 the reply in the reactor could in turn process yet another
66 request to build up the stack. The unbounded growth on the stack
67 leads to crash failures.
<p>
72 <!-- --------------------- -->
73 <a href=
"#toc">Back to TOC
</a>
74 <!-- --------------------- -->
76 <!-- ============================================================ -->
77 <a name=
"ongoing"><h3>Ongoing Work:
</h3></a>
80 <li><p>Support new concurrency models, e.g., Thread-per-Request,
83 <li><p>Improvement to connection cache on the acceptor side so that
84 it will purge old connections when there are no more slots or
85 sockets are available. The connection cache does good job of
86 purging things on the connector side
</p>
89 <li><p> Prevent unbounded stack growth that leads to a failure in
90 situations explained in
<a href=
"#issues">known issues
</a>.
</p>
94 <!-- --------------------- -->
95 <a href=
"#toc">Back to TOC
</a>
96 <!-- --------------------- -->
98 <!-- ============================================================ -->
99 <a name=
"future"><h3>Future work:
</h3></a>
102 <li>Performance bottlenecks:
</li>
104 <li><p> Need to identify performance bottlenecks. Looks like
105 TAO has slowed down a bit over the past two betas. Need to
106 identify the bottlenecks before improving the performance.
</p>
109 <li><p> Its a known fact that thread-per-connection is faster
110 than the reactive model, even for single threaded cases. Need
111 to identify portions of the reactor that slows down things and
112 fix them or create a fast path in the ORB just using plain
113 vanilla select for the server.
</p>
116 <li><p> In the output data path, the CDR creates the message
117 block and all other associted things on TSS. If we could
118 change the CDR to first create them on the stack and then move
119 the data to TSS we could achieve better performance for small
126 <li><p>Implement DP-CORBA specification
</p></li>
128 <li><p>Implement TII specification.
</p></li>
132 <!-- --------------------- -->
133 <a href=
"#toc">Back to TOC
</a>
134 <!-- --------------------- -->
136 <!-- ============================================================ -->
137 <a name=
"completed"><h3>Completed Work:
</h3></a>
139 <!-- ************************************************************ -->
140 <!-- Please make sure you append new items at the end of the list -->
141 <!-- ************************************************************ -->
143 <li><p> Implemented a connection timeout policy in the ORB. This
144 is useful for applications to set a timeout value associated
145 with connection establishment. The name of the policy is
146 <code>TAO::CONNECTION_TIMEOUT_POLICY_TYPE
</code> and is
147 proprietary to TAO. It comes as a prt of the TAO_Messaging
149 <code>$TAO_ROOT/tests/Connection_Timeout
</code> for an example
150 of how to use this feature.
<p>
153 <li><p> Implemented non-blocking connects with three different
154 strategies for connection establishment. The details of the
155 strategies and the related documentation can be found
<A
156 href=
"../Options.html">here
</a>.
</p>
159 <li><p> Deprecated the option -ORBConnectionCachingStrategy. The
160 option -ORBConnectionPurgingStrategy fills in the role of the
161 deprecated strategy.
</p>
164 <li><p> Deprecated the option -ORBResources.
</p></li>
166 <li><p> The connectors have been moved to the lanes.
</p> </li>
168 <li><p> Fixed stack recursion problems that occurs, when a thread
169 flushing a reply by entering the reactor starts processing
170 incoming requests.
</p>
173 <li><p> Fixed connection handling and connection closing problems,
174 when a write call to a remote host fails.
</p>
177 <li> <p> Moved the allocators used for allocating memory for the
178 incoming data path to the lanes. Only allocators on the
179 incoming data path are moved into the lanes. Allocators on the
180 outgoing data path are still on a per-orb basis. Since the
181 outgoing data path uses memory from the TSS, moving them to
182 the lanes is not necessary.
185 <li><p> Added an option, -ORBSingleReadOptimization that allows
186 users to turn on or turn off the single read
187 optimization. This is useful for RTCORBA server threads to
188 avoid priority inversions. Buffering messages and sending
189 notifications to the reactor, that does not know or honour
190 priority could lead to priority inversions.
194 <li><p> Several changes were made to utilize the new memory management mechanisms
195 of Event Handlers in TAO. Previously, both the connection handlers and
196 the transports had their own reference counting mechanism and
197 independent lifetimes. The reference counting was inadequate
198 since it was not originated at the Reactor and the independent
199 lifetimes unnecessarily completed protocol specific transport
202 The changes couple the lifetime of the connection handler with
203 that of the transport and utilizes the reference count in the
204 base ACE_Event_Handler class. This allowed us to remove several
205 hacks throughout TAO code which were designed to prevent (or
206 delay) crashes. Several extra checks and unnecessary locks were
209 All of the following protocols were updated: DIOP, IIOP,
210 SCIOP, SHMIOP, SSLIOP, UIOP, UIPMC.
</p>
213 <li><p> Support for the ORB methods create_value_tc, create_component_tc,
214 create_event_tc, create_home_tc and create_recursive_tc added.
</p>
218 <!-- --------------------- -->
219 <a href=
"#toc">Back to TOC
</a>
220 <!-- --------------------- -->