[
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)