diff options
author | coryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1998-08-09 02:56:35 +0000 |
---|---|---|
committer | coryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1998-08-09 02:56:35 +0000 |
commit | cd7ce8deaf2a296d15e6cd0f2cb3f58c4e483c8a (patch) | |
tree | 2eaf1beeaa2bc09363204a6d813747a5cc65ffb4 | |
parent | cc5f1e3517ca21190a71f49aa192b7550c551788 (diff) | |
download | ATCD-cd7ce8deaf2a296d15e6cd0f2cb3f58c4e483c8a.tar.gz |
ChangeLogTag:Sat Aug 8 21:28:33 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-rw-r--r-- | TAO/ChangeLog-98c | 7 | ||||
-rw-r--r-- | TAO/docs/configurations.html | 60 | ||||
-rw-r--r-- | TAO/docs/releasenotes/TODO.html | 22 |
3 files changed, 89 insertions, 0 deletions
diff --git a/TAO/ChangeLog-98c b/TAO/ChangeLog-98c index ff731df1cc5..fe6de266c9b 100644 --- a/TAO/ChangeLog-98c +++ b/TAO/ChangeLog-98c @@ -5,6 +5,13 @@ Sat Aug 8 21:28:33 1998 Carlos O'Ryan <coryan@cs.wustl.edu> * tao/Exception.cpp: Removed superflous operator new and operator delete. + * docs/releasenotes/TODO.html: + More updates. + + * docs/configurations.html: + Added a few hints on when to use ORB-per-thread and what the + consequences are. + Fri Aug 7 21:39:26 1998 Carlos O'Ryan <coryan@cs.wustl.edu> * docs/releasenotes/TODO.html: diff --git a/TAO/docs/configurations.html b/TAO/docs/configurations.html index 61a0f82916c..1f2390e30aa 100644 --- a/TAO/docs/configurations.html +++ b/TAO/docs/configurations.html @@ -443,6 +443,66 @@ NAME="multiorb-tpool"></A> (Not yet implemented.) </UL> </blockquote> +<HR> + +<H3 ALIGN=CENTER>Hints</H3> + + <P> + Choosing the right configuration is hard and, + of course, + depends on your application. + In the following section we will attempt to describe some + motivations for features in TAO, + hopefully that can guide you through the choice of your + configuration options. + </P> + + <UL> + <LI> + <P><B>ORB-per-thread</B> + The main motivation behind this options + is to minimize priority invertion, + since threads share no ORB resources no locking is required + and thus, + priority is preserved in most cases (assuming proper support + from the OS). + If you are not too concerned about priority inversion try to + use a global ORB, + using ORB-per-thread has some tradeoffs + (like calling ORB_init on each thread, activation of a servant + is more complicated, etc.) + Some of the problems, can be minimized, but they require + even more careful analysis. + For example, + object activation can be simplified by using a global POA; + the careful reader will wonder how could global POA be + useful in anyway since it will require locks and thus + introduce priority inversions again; + some applications activate all their objects beforehand so + locks in the POA are not always needed; + other applications only activate a few objects after + startup, + so they can use a child POA with the right locking policy + for the dynamic servants and the root poa (with no locking) + for the majority of the servants. + </P> + <P> + As the reader will note this is a delicate configuration + option, the rule of thumb should be <B>not</B> to use + ORB-per-thread unless it is really required. + </P> + </LI> + <LI><B>Collocation tables</B> + Why could the application what a non-global collocation table? + If objects are to serve requests only at a well known priority + the application can be configured with the ORB-per-thread + option, and the object is activated only in the thread (ORB) + corresponding to the desired priority. + But using a global table would subert the priority assignment + (because calls would run at the priority of the client). + </LI> + </UL> + <P><HR><P> Back to the TAO <A HREF="components.html">components documentation</A>. diff --git a/TAO/docs/releasenotes/TODO.html b/TAO/docs/releasenotes/TODO.html index aaa340e042f..9b09eac6f47 100644 --- a/TAO/docs/releasenotes/TODO.html +++ b/TAO/docs/releasenotes/TODO.html @@ -29,6 +29,14 @@ </CENTER> <UL> + <LI>Move the EC specific things out of this file to the ec.html + file. + </LI> + + <LI>The IDL compiler gets confused with paths in NT, this may be + due to my changes to report errors correctly. + </LI> + <LI>The do_static_call() and do_dynamic_call() methods should use an array of void* (in the first case static and generated by the IDL compiler); @@ -372,6 +380,20 @@ Irfan) we need not worry about this until we find a use case for it. </LI> + + <LI> + The current implementation is optimal for hard-real-time + applications, but in some cases it may be desirable to follow + the normal execution path yet minize costs for collocated + calls. + An example would include an application that activates the + objects on demand. + It would be interesting to have a half-collocated stub + implementation, that will marshall the request and then + invokes the normal path on the "server" side, but without + crossing the kernel boundary. Ideally even the serialization + could be minimized or avoided. + </LI> </UL> <CENTER> |