[ 
https://issues.apache.org/jira/browse/UIMA-5168?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Marshall Schor closed UIMA-5168.
--------------------------------
    Resolution: Later

> uv3 vs backporting most things to uv2?
> --------------------------------------
>
>                 Key: UIMA-5168
>                 URL: https://issues.apache.org/jira/browse/UIMA-5168
>             Project: UIMA
>          Issue Type: Question
>          Components: Core Java Framework
>            Reporter: Marshall Schor
>
> The uv3 docs - overview has a summary of the "features" / benefits of uv3.  I 
> was surprised to realize, looking at these, that most of these could be 
> back-ported into version 2.  
> Because of this, there is a choice in moving forwards, either to stick to the 
> current v2 data representation models (sticking), or switch to new v3 ones 
> (for Java).  In the subsequent discussion, "sticking" refers to a currently 
> non-existent v2 where the v3 improvements (except for changing how Feature 
> Structures are stored) are backported.
> The two benefits lost in sticking are: 
> * garbage collection of unreferenced Feature Structures.
> * larger limits on the number of Feature Structures per CAS (approximately 
> order of magnitude).  This is due to the fact that in v2, all of the slots 
> for all Feature Structures and int and float arrays are kept in one int 
> array, which has a limit of approximately 2 billion words.
> Benefits in sticking include:
> * (perhaps) better backwards compatibility
> * a smaller memory footprint if JCas is not being used (imagine UIMA running 
> on a smartphone)
> * (maybe) better performance in some cases, including serialization
> Regarding performance differences:  v3 may be more performant in many cases 
> because of not needing to switch from low-level int handles to JCas object 
> references.  But it may be less performant in some operations involving 
> serialization, because of the overhead to emulate/model the way v2 does 
> serialization.  New Native-to-v3 serializaton forms that are not backward 
> compatible could be added to v3 to overcome this.   
> The things that could be backported to v2 include:
> * redesigning the JCas cover classes for higher performance (eliminating the 
> xxx_Type classes, putting an extra field in the xxx cover class instead).
> ** note: a JCas class migration would be needed for this, similar to the one 
> for v3.
> * redesigning much of the supporting infrastructure to improve performance by 
> increasing locality of reference.
> * supporting arbitrary Java Objects, and backporting the implementation of 
> FSArrayList and IntegerArrayList
> * integrating with Java 8 - including the new select framework
> * eliminating problems with ConcurrentModificationException while iterating 
> over UIMA indexes
> * reusing Type Systems
> Comparing v3 versus v2+backport, what do people think of the balance between 
> pro/con?  Should we focus on a v2+backport direction instead of v3?



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to