On Tue, Feb 24, 2009 at 9:36 AM, Adam Lally <ala...@alum.rpi.edu> wrote: > To address Eddie's point about Vinci services breaking FS handles > already - I consider that a bug, so am not happy using that as a > rationale to invalidate FS handles as a general policy. And I'm > worried that users who haven't been using Vinci services (I bet we > have plenty of those) have built applications that rely on this > behavior. I remember suggesting that we post on the user list about > this, but am not sure if we ever did. > > If you do a GC approach, is there not any way to include > application-created FeatureStructures as part of the "root" set? Or > to look at it another way, the set of FS's that you do the GC over is > only those created since the CAS was input to the current AE (possible > aggregate).
This seems like a really good approach, allowing a set of annotators in an aggregate to create temporary content and then fully remove it. Bhavani has already created a mechanism for setting marks in the FS heap at AE entry points. Based on these marks it should be easy to do as you suggest: limit GC to those FS created since entering the current aggregate. A client application would be able to preserve its references by either running primitive AE in an aggregate, or by manually setting the mark itself. > It seems like Marshall's angle (if I understood it) is not really GC > at all, but a model where an annotator decides to explicitly delete > FS. I could be okay with that idea, too. A GC model by definition > should preserve any referenced FSs, but if we say we have an explicit > deletion model where anybody can delete anyone else's stuff, at least > we won't confuse people about what's going on. Current applications > that use existing annotators would not break (because the annotators > would not delete anything), and if a new annotator is introduced that > breaks the application, it's the annotator's fault for being too > aggressive in deleting stuff that someone else might still need. What is different here? UIMA already lets any annotator delete anything in the CAS, where deletion is defined by removing FS from the index and removing references. GC would just add the ability to reclaim FS heap space. Eddie