uima-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jerry Cwiklik (JIRA)" <uima-...@incubator.apache.org>
Subject [jira] Issue Comment Edited: (UIMA-1109) Need ability to quiesce an instance of a service
Date Wed, 18 Mar 2009 16:54:50 GMT

    [ https://issues.apache.org/jira/browse/UIMA-1109?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12683075#action_12683075
] 

Jerry Cwiklik edited comment on UIMA-1109 at 3/18/09 9:54 AM:
--------------------------------------------------------------

Currently there is no general mechanism to stop a specific instance of a remote service from
the client unless it *IS* the only service on a queue. Services share a queue and which instance
picks up a message is not known. Only Cas Multipliers create a special dedicated queue where
the client sends Free CAS requests. I think the Terminate command would apply to all service
types: aggregate, primitive, Cas Multiplier or not.

Perhaps we need to enhance uima AS service to support a listener on a Topic, where we can
send admin type commands to services. With that we can broadcast commands like Terminate to
all services or a specific service. The latter would require a selector that would filter
messages. Each service may generate a UUID and use it to filter messages destined for it.
This would require that the service adds this ID to every reply going to the client. And the
client to internally associate this UUID with a specific service instance. If the client wants
to stop all services, it would send a message to the topic without providing a UUID. A service
may use a selector like this:

"serviceid IS NULL OR serviceid=<uuid>", where <uuid> is the actual UUID of the
service.

The first part of the expression (serviceid property not in the message) supports broadcasting
commands to ALL services. The second part, enables to send a message to a specific service.



      was (Author: cwiklik):
    Currently there is no general mechanism to stop a specific instance of a remote service
from the client unless it *IS* the only service on a queue. Services share a queue and which
instance picks up a message is not known. Only Cas Multipliers create a special dedicated
queue where the client sends Free CAS requests. I thing the Terminate command would apply
to all service types: aggregate, primitive, Cas Multiplier or not.

Perhaps we need to enhance uima AS service to support a listener on a Topic, where we can
send admin type commands to services. With that we can broadcast commands like Terminate to
all services or a specific service. The latter would require a selector that would filter
messages. Each service may generate a UUID and use it to filter messages destined for it.
This would require that the service adds this ID to every reply going to the client. And the
client to internally associate this UUID with a specific service instance. If the client wants
to stop all services, it would send a message to the topic without providing a UUID. A service
may use a selector like this:

"serviceid IS NULL OR serviceid=<uuid>", where <uuid> is the actual UUID of the
service.

The first part of the expression (serviceid property not in the message) supports broadcasting
commands to ALL services. The second part, enables to send a message to a specific service.


  
> Need ability to quiesce an instance of a service
> ------------------------------------------------
>
>                 Key: UIMA-1109
>                 URL: https://issues.apache.org/jira/browse/UIMA-1109
>             Project: UIMA
>          Issue Type: Improvement
>          Components: Async Scaleout
>            Reporter: Burn Lewis
>
> We can deploy extra instances of a service seamlessly but also need a mechanism to undeploy
without losing any work, i.e. ask an instance to stop processing messages and shutdown when
it finishes its current work.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message