jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Esteban Franqueiro" <esteban.franque...@bea.com>
Subject Realtime datastore garbage collector
Date Tue, 30 Oct 2007 20:25:26 GMT
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
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?
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.

Esteban Franqueiro

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.

View raw message