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