Uploaded image for project: 'UIMA'
  1. UIMA
  2. UIMA-3691

support multi-threaded shared contexts for CasPools for CAS Multipliers

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Minor
    • Resolution: Fixed
    • 2.5.0SDK
    • 2.6.0SDK
    • Core Java Framework
    • None

    Description

      The current UIMA framework design is quite flexible when it comes to producing analysis engines (AEs), to allow various scale-outs on a single JVM. When scaled out, via multiple instances of the AEs, it's possible to have the multiple instances share the UIMA Context (by passing a reference to it in additional params). The current design for CAS Multipliers creates a pool for each CAS Multiplier, and hangs it off of the UIMA Context. The problem with this approach is that if the scaleout approach chooses to share a common UIMA Context with all scaled out instances, then the CAS pool will run out of CASes. A better design is to hang the pool off of an object that will scale with the Annotator itself, rather than the shared context. This can be done by changing the implementation of getEmptyCas() in the CasMultiplier_implBase class(es). The current implementation calls the same method on the (potentially shared) UIMA Context object; this could be deprecated with a note saying that this will still work, but not with scaled out impls that share the UIMA context object.

      Attachments

        Issue Links

          Activity

            People

              schor Marshall Schor
              schor Marshall Schor
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: