Hi Chetan, I agree with all your points, we need to make the AsyncIndexUpdate shutdown aware. For both cleanup but also for stopping a potential heavy diff from continuing on.
If a system is killed I see 2 scenarios related to the new checkpoint. First it's not linked from the root in which case I believe that it will be considered as garbage (any content not linked from the head is viewed as such) so I couldn't worry too much about this, unless you prove me otherwise :) Second is the worse in my view, the cp get created and referenced with a life of 3y, but the async gets shut down and doesn't get a chance to cleanup. This is a node state that will keep the GC from cleaning properly. Let's continue the investigation on OAK-2087. best, alex On Wed, Sep 10, 2014 at 8:33 AM, Chetan Mehrotra <[email protected]> wrote: > Currently AsyncIndexUpdate creates a checkpoint with a lifetime of 3 > years. Post index complete the checkpoint is moved to point to > revision upto which indexing is done and previous checkpoint is > released. > > Now if a system is killed when a index update is in progress > particularly in run method where a new checkpoint gets created (Line > 229) then that checkpoint would not be released and also would not be > recorded in index metadata. Such a checkpoint would prevent GC for a > long time. > > Is that understanding correct? > > Chetan Mehrotra >
