jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Stefan Guggisberg" <stefan.guggisb...@gmail.com>
Subject Re: Realtime datastore garbage collector
Date Wed, 31 Oct 2007 08:57:52 GMT
On 10/30/07, Esteban Franqueiro <esteban.franqueiro@bea.com> wrote:
> Hi Thomas.
> Regarding this:
>
> >> who has the hard reference to the data identifier
> >
> > The chain is:
> > PropertyImpl -> InternalValue -> BLOBInDataStore -> DataIdentifier
>
> Who holds on to the PropertyImpl? Is this reference removed before or after the save?
> Im asking because while testing the code I came up with the following scenario:
>
>    JR                      |  GC
> ------------------------|---------------------
> add properties    |
>                               | set cut-point as part of the next scan / mark cycle
>                               | (won't mark recently added properties, because they're
unsaved)
>   save                    |
> (evict)                   |
>                               | deleteUnused()
>
> (evict): identifiers evicted from the weak hash map
>
> Is it possible that the identifiers get removed from the weak hash map immediatly after
the save
> operation? Or the identifiers can't be removed because a hard reference to them (ie,
to the
> PropertyImpl object) is kept somewhere in the Jackrabbit core? When is this reference
removed?

there are no hard references to ItemImpl instances kept within jackrabbit core.
ItemImpl instances are automatically collected as soon as the client
code releases
the last refererence. see o.a.j.c.ItemManager#itemCache for details.

cheers
stefan

> In testing, this is possible to do by calling the clearInUse() method you provided. But
what about a
> real scenario?
> I hope you can understand me. If not, I'll try to explain better.
> Regards,
>
> Esteban Franqueiro
> esteban.franqueiro@bea.com
>
>
> Notice:  This email message, together with any attachments, may contain information 
of  BEA Systems,  Inc.,  its subsidiaries  and  affiliated entities,  that may be confidential,
 proprietary,  copyrighted  and/or legally privileged, and is intended solely for the use
of the individual or entity named in this message. If you are not the intended recipient,
and have received this message in error, please immediately return this by email and then
delete it.
>

Mime
View raw message