Return-Path: Delivered-To: apmail-jackrabbit-dev-archive@www.apache.org Received: (qmail 63954 invoked from network); 30 Oct 2007 20:26:04 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 30 Oct 2007 20:26:04 -0000 Received: (qmail 15924 invoked by uid 500); 30 Oct 2007 20:25:51 -0000 Delivered-To: apmail-jackrabbit-dev-archive@jackrabbit.apache.org Received: (qmail 15861 invoked by uid 500); 30 Oct 2007 20:25:51 -0000 Mailing-List: contact dev-help@jackrabbit.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@jackrabbit.apache.org Delivered-To: mailing list dev@jackrabbit.apache.org Received: (qmail 15839 invoked by uid 99); 30 Oct 2007 20:25:51 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 30 Oct 2007 13:25:51 -0700 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of esteban.franqueiro@bea.com designates 66.248.222.89 as permitted sender) Received: from [66.248.222.89] (HELO rcpmmg01.bea.com) (66.248.222.89) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 30 Oct 2007 20:26:07 +0000 Received: from rcpmmr01.bea.com (rcpmmr01.bea.com [10.168.29.71]) by rcpmmg01.bea.com (Switch-3.3.0/Switch-3.2.7) with ESMTP id l9UKPV2W014135 for ; Tue, 30 Oct 2007 13:25:31 -0700 Received: from goku ([10.36.9.115]) by rcpmmr01.bea.com (Switch-3.3.0/Switch-3.2.7) with SMTP id l9UKPSdC029564 for ; Tue, 30 Oct 2007 13:25:29 -0700 Message-ID: <040b01c81b33$0270ad40$7309240a@goku> From: "Esteban Franqueiro" To: References: <04b201c810fd$06c4f300$7309240a@goku> <5f211bd50710190706y3444aaf2l6a302f2001e4be6b@mail.gmail.com> Subject: Realtime datastore garbage collector Date: Tue, 30 Oct 2007 17:25:26 -0300 MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.3790.1830 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.3790.1830 x-BEA-PMX-Instructions: AV x-BEA-MM: Internal-To-External X-Virus-Checked: Checked by ClamAV on apache.org 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? 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.