Hi Eddie,

I am new to UIMA so I might have to reread the documentation. I was
under the impression that I can use multiple threads as long as I use
a cas pool and a multi threaded AE. This is described here:

http://uima.apache.org/d/uimaj-2.4.0/tutorials_and_users_guides.html#ugr.tug.applications.multi_threaded

Did I misunderstand this part of the documentation?  In my case I am
running Core UIMA and I would benefit from multitasking.  (many of my
annotators have a lot of idle time waiting for responses from remote
servers)

This is my first time using UIMA and I have spent too much time trying
to persist the annotations in a database because I am frequently
changing my type system and experimenting with various analysis
approaches. Keeping the schema and INSERT statements in synch with the
type system was time consuming and error prone.  I would like to
automate the persistence of the annotations based on the current type
system if possible. I was looking at Liquibase as an API that could be
used during the initialization of my pipelines to update the database
schema and then write a generic JDBC based annotator to write/insert
the cas to the database. Any thoughts?

Best,
Shahim



On Tue, May 1, 2012 at 10:54 AM, Eddie Epstein <[email protected]> wrote:
> Core UIMA is a single-threaded framework. There are two multi-threaded
> deployment wrappers, UIMA-AS and the older CPE. Are you using one of
> these wrappers?
>
> Eddie
>
>
>
> On Mon, Apr 30, 2012 at 2:01 PM, Shahim Essaid <[email protected]> wrote:
>> Hi All,
>>
>> I am trying to write a primitive analysis engine that checks, and
>> creates or updates a database schema based on the type system. I need
>> to synchronize the initialization of this component so that only one
>> instance of the component will do this task when there are multiple
>> instances being instantiated.
>>
>> What is the correct object to synchronize on?  Is the type system
>> object the correct one and does it maintain its identity throughout a
>> JVM run?  Is it a different object in the other aggregates even though
>> they use the same type system description?
>>
>> I need to block all other threads in the other instances of the
>> current component until the database is updated.  I also need this
>> object to be specific to the current aggregate so that other
>> aggregates running in the same JVM can have their own synchronization
>> objects and database updates independent of each other. In other
>> words, I can't use a JVM wide object.
>>
>> Thank you,
>> Shahim

Reply via email to