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
>

Reply via email to