diff options
Diffstat (limited to 'ACE/TAO/orbsvcs/tests/Redundant_Naming/README')
-rw-r--r-- | ACE/TAO/orbsvcs/tests/Redundant_Naming/README | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/ACE/TAO/orbsvcs/tests/Redundant_Naming/README b/ACE/TAO/orbsvcs/tests/Redundant_Naming/README new file mode 100644 index 00000000000..85ad95373a1 --- /dev/null +++ b/ACE/TAO/orbsvcs/tests/Redundant_Naming/README @@ -0,0 +1,89 @@ +// $Id$ + +This application tests the redundancy feature of TAO's Naming Service. + +To run all tests automatically - + execute Perl script run_test.pl + +To run tests manually - + start the Naming Service (see + TAO/orbsvcs/Naming_Service/README for valid options), + then run ./client the optional options are shown below. + +NOTE: if running tests manually, the NameService directory must exist +before starting the Naming Service and this directory must be cleaned out +manually after stopping the Naming Service. + +The following options exist: +--------------------------- +-b Breath of Context tree, default is 4, minimum is 2 + +-d Depth of Context tree, default is 4, minimum is 2 + +-o Breath of Object tree, default is 4, minimum is 2 + +-p ior for Naming Server 1 + +-q ior for Naming Server 2 + +The client creates two context trees, one of breath b and one of depth d, +and another node with o objects. It then removes the contexts b-1, d and +the object o-1. All these are done using the first name server. The +client then accesses contexts b, b-1, d, d-1, and objects o, o-1 looking +for the appropriate found/not-found returns using the second name server. + + Example (on a Unix system): + $ $TAO_ROOT/orbsvcs/Naming_Service/Naming_Service -o nsior1\ + -r NameService -ORBEndPoint iiop://localhost:10001 & + $ $TAO_ROOT/orbsvcs/Naming_Service/Naming_Service -o nsior2\ + -r NameService -ORBEndPoint iiop://localhost:10002 & + $ ./client -p file://nsior1 -q file://nsior2 + + where the steps correspond to 1&2)starting the Naming Service + in redundant mode, 3) running the client. + Don't forget to kill the name servers after you are done. + + + +EXPECTED OUTPUT FOR THIS TEST +***************************** + +Redundancy test OK. + +The default test runs in a few seconds. (4 on my 500MHz Linux) + + +***************************** +Restrictions, performance notes, and future + +While the redundant naming service is only fully function on Tru64 +clusters, it can be used on any two systems that share a file system +with locking. However, this test puts the two naming servers on the +local system doesn't test the locking (probablistic to do, at best) +and runs the client on the same system. This will specifically test +only the functionality of the redundancy. The extra parameters can +be used manually to probe performance, as illustrated below. + +Using the b,d, and o options, I determined: + +As the number of objects in a single context increases, performance +decreases. This is because of I/O limits, each addition of a new +object reference adds about 1/2 KB and rewrites the whole file. I +observed 9746 objects added to a single context in 100 minutes and +noted that the disk light was on solid. + +As the number of contexts increase, the CPU became the limiting factor. +2000 contexts under the root context took 20 minutes. + +As the depth of the contexts increases, the limit becomes the file +system. As the number of contexts, equivalent to files, passed 12000, +the system slowed to a crawl. The first 12000 took about 5 minutes, the +next 15 minutes only got another 2000. Process CPU was very low, less +than 5 %. Disk activity was high, but not contiguous, lot of head motion +not seen in the single context above. + +Future enhancement of this service should address these performance +limits. One obvious enhancement is to use IPC between the redundant +Naming Servers to reduce the dependence on the disk, then a lazy update +of the disk can be done. Would take a lot of code, but doable. + |