summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/orbsvcs/Notify/README
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/Notify/README')
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/README64
1 files changed, 44 insertions, 20 deletions
diff --git a/TAO/orbsvcs/orbsvcs/Notify/README b/TAO/orbsvcs/orbsvcs/Notify/README
index 2b060280bd9..05684cec2d4 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/README
+++ b/TAO/orbsvcs/orbsvcs/Notify/README
@@ -3,32 +3,56 @@ $Id$
README for the Notification Service
-----------------------------------
-# @@ Pradeep: do you have a document that describes the internals of
-# the service? If not, this is a good place to write that down,
-# and a good start for the paper...
+Implementation notes
+--------------------
-The following interfaces have been implemented:
-# @@ Pradeep it said 'grammer' it is 'grammar'...
-CosNotifyFilter::Filter (supports the Trader TCL grammar)
-CosNotifyFilter::FilterFactory
+Here is a brief description of the MT options for the Notify Service.
+The motivation for adding these "knobs" is give the user a chance to
+fine tune his/her thread requirements in the Service at its
+bottlenecks. These bottlenecks are at filter evaluation and in the two
+way push to consumers. These are the points at which the Event Channel
+has to interact with remote objects whose implementation is unknown to
+the Event Channel. e.g. if a consumer decided to execute a tight loop
+in its push method, it would block the entire event channel if it was
+single threaded. By depllying a thread pool to perform dispatching
+events to consumers - we can alleviate this problem.
-CosNotifyChannelAdmin::ProxyPushConsumer
-CosNotifyChannelAdmin::StructuredProxyPushConsumer
-CosNotifyChannelAdmin::SequenceProxyPushConsumer
+[Also read the $TAO_ROOT/orbsvcs/Notify_Service/README for a proper
+description of how to specify these parameters.]
-CosNotifyChannelAdmin::ProxyPushSupplier
-CosNotifyChannelAdmin::StructuredProxyPushSupplier
-CosNotifyChannelAdmin::SequenceProxyPushSupplier (push not implemented)
+-MTDispatching
+Consider a Notify service running with just one thread, namely the main.
+In this case when the event channel dispatches an event to a consumer (by
+calling its push method) all other consumers will be blocked, waiting for
+their push methods to be invoked. To decouple the consumers from one
+another we can deploy dispatching threads using this option.
-CosNotifyChannelAdmin::ConsumerAdmin
-CosNotifyChannelAdmin::SupplierAdmin
-CosNotifyChannelAdmin::EventChannel
-Work in progress:
-----------------
+-MTListenerEval
+In the design of the Notify, all proxy suppliers are modelled as
+"listeners". i,e. they listen for events from the event manager.
+The MListenerEval option allows us to deploy a thread pool per listener
+for filter evaluation. So, if you have big or remote filters associated
+with your proxy suppliers you would want to set this option. again the
+intent is to decouple the processing time for filter evaluation from rest
+of the activities in the event channel.
+as it stands now, if you were to set this option, there would be a thread
+pool for *every* proxy supplier in the EC. what i would have liked to do
+is to be able to set this option as a QoS property so that the thread pool
+is set programatically at run time.
+
+
+-MTSourceEval
+Similarly, this option is used to deploy a thread pool per proxy consumer
+to evaluate filters attached with it. The proxy consumers are modelled as
+event sources - supplying events to the event manager. again this will set
+a thread pool per proxy consumer.
+
+-MTLookup
+This option allows us to set a common thread pool for *all* proxy
+suppliers (versus a dedicated thread pool for each proxy supplier via the
+-MTDispatching option).
-* Testing of the features implemented so far.
-* Support for QoS properties.
Usage:
-----