Jaroslaw Cwiklik wrote:
In your particular case ( node dying), getting a message in a transactional
context could have helped. Transactions are not "free" and I certainly would
not want to use them by default. Transactions have impact on performance. We
could enable transactional JMS session using a configuration setting.
Perhaps via -D.
Sure, do you think transactions are really expensive and slow the
system down ?

Otherwise it might be better to have a cluster master which just keeps
track of everything.

I also noticed that client node failure is difficult to handle, because then you loose
track of the of the pending CASes, which are processed right now.

Our system reads from a work queue which is feed by a different system,
then the work item is wrapped in a CAS and sent to the uima-as cluster, when the client
gets the work back from the cluster the result is sent to another queue.
If now the client crashes (dies) we do not get back the CASes already sent to the cluster but have not returned yet. To improve that situation it would be cool if UIMA AS could guarantee that every CAS which was sent to the cluster can also be retrieved from it, even in case the client crashes (or a worker node dies). Our use case would be really simple if UIMA AS just defines two queues, one to feed it and one to read results form it (I think it is nearly done like that right now). The part which reads the result from uima-as must not necessary run in the same process (or machine) as the
part which feeds it.

Jörn



Reply via email to