Return-Path: Delivered-To: apmail-db-derby-dev-archive@www.apache.org Received: (qmail 40436 invoked from network); 23 Aug 2005 14:26:27 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 23 Aug 2005 14:26:27 -0000 Received: (qmail 445 invoked by uid 500); 23 Aug 2005 14:26:26 -0000 Delivered-To: apmail-db-derby-dev-archive@db.apache.org Received: (qmail 415 invoked by uid 500); 23 Aug 2005 14:26:25 -0000 Mailing-List: contact derby-dev-help@db.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: List-Id: Reply-To: "Derby Development" Delivered-To: mailing list derby-dev@db.apache.org Received: (qmail 399 invoked by uid 99); 23 Aug 2005 14:26:25 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 23 Aug 2005 07:26:25 -0700 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Received-SPF: pass (asf.osuosl.org: local policy) Received: from [192.18.98.34] (HELO brmea-mail-3.sun.com) (192.18.98.34) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 23 Aug 2005 07:26:42 -0700 Received: from phys-epost-1 ([129.159.136.14]) by brmea-mail-3.sun.com (8.12.10/8.12.9) with ESMTP id j7NEQMWR017491 for ; Tue, 23 Aug 2005 08:26:23 -0600 (MDT) Received: from conversion-daemon.epost-mail1.sweden.sun.com by epost-mail1.sweden.sun.com (iPlanet Messaging Server 5.2 HotFix 1.24 (built Dec 19 2003)) id <0ILO00K01IGPEF@epost-mail1.sweden.sun.com> (original mail from Oystein.Grovlen@Sun.COM) for derby-dev@db.apache.org; Tue, 23 Aug 2005 16:26:22 +0200 (MEST) Received: from atum11.norway.sun.com.sun.com (atum11.Norway.Sun.COM [129.159.112.211]) by epost-mail1.sweden.sun.com (iPlanet Messaging Server 5.2 HotFix 1.24 (built Dec 19 2003)) with ESMTP id <0ILO006MIIRXSA@epost-mail1.sweden.sun.com> for derby-dev@db.apache.org; Tue, 23 Aug 2005 16:26:22 +0200 (MEST) Date: Tue, 23 Aug 2005 16:26:21 +0200 From: Oystein.Grovlen@Sun.COM (=?iso-8859-1?q?=D8ystein_Gr=F8vlen?=) Subject: Re: Can anyone give me some suggestions? In-reply-to: To: Derby Development Message-id: MIME-version: 1.0 Content-type: text/plain; charset=iso-8859-1 Content-transfer-encoding: 8BIT User-Agent: Gnus/5.0808 (Gnus v5.8.8) Emacs/21.2 Lines: 60 References: X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N >>>>> "RR" == Raymond Raymond writes: RR> Fuzzy checkpointing means checkpoints are asynchronous and occur ant the RR> same time as new database updates are being made. The general actions RR> in a fuzzy checkpoint are: RR> 1. Force log buffer to disk from memory. RR> 2. To check if there are any buffer still on the checkpoint list form RR> the previous checkpoint. RR> If there are any, then write them out to disk.(the list is RR> supposed to be empty under RR> some control). RR> 3. All dirty buffers will be listed in the current checkpoint list. RR> 4. Gather other useful information. RR> Once these actions have done, the remainder of the checkpoint can also RR> proceed in RR> parallel with future database updates. e.t.: a write process will RR> examine the checkpoint RR> list periodically, write some of the buffers on the list to disk and RR> remove thme from the RR> list.Under some controls, it is supposed that the list will be empty RR> just befor the next RR> checkpoint is taken. RR> Those are just the general processes of fuzzy checkpointing. I think RR> we can use some RR> technic to make it works more efficient. That is what I am trying to do.^_^. RR> Anyone has some ideas about that? Raymond, What you describe is one implementation of fuzzy checkpointing. The term fuzzy checkpoint refers to a checkpoint where the checkpointed pages are not mutually consistent (ref. Gray&Reuter, "Transaction Processing"). The significant part about fuzzy checkpointing is that checkpointing occur in parallel with normal activity. Hence, one will have to apply the log records generated in parallel with the checkpoint in order to reach a consistent database state. According to that definition, Derby implements fuzzy checkpointing. I am not convinced that you will achieve much by your suggested change to Derby's checkpointing mechanism. If I understand you correctly, your idea is that by writing out only what was dirty before the previous checkpoint there will be less work to do. However, this means that you will have to do recovery from the penultimate checkpoint. Derby, on the other hand updates the log control file when the checkpoint has completed. Hence, it will be able to recovery from the last completed checkpoint. This way, to support a given recovery time, Derby can have larger checkpoint intervals than your method. All in all, I am not convinced that the total number of writes in your case will necessarily be less than for Derby. -- �ystein