From derby-dev-return-2002-apmail-db-derby-dev-archive=db.apache.org@db.apache.org Wed Feb 02 00:40:02 2005 Return-Path: Delivered-To: apmail-db-derby-dev-archive@www.apache.org Received: (qmail 8492 invoked from network); 2 Feb 2005 00:40:02 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur-2.apache.org with SMTP; 2 Feb 2005 00:40:02 -0000 Received: (qmail 41358 invoked by uid 500); 2 Feb 2005 00:40:01 -0000 Delivered-To: apmail-db-derby-dev-archive@db.apache.org Received: (qmail 41335 invoked by uid 500); 2 Feb 2005 00:40:01 -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 41322 invoked by uid 99); 2 Feb 2005 00:40:01 -0000 X-ASF-Spam-Status: No, hits=1.8 required=10.0 tests=DNS_FROM_RFC_ABUSE,DNS_FROM_RFC_POST X-Spam-Check-By: apache.org Received-SPF: neutral (hermes.apache.org: local policy) Received: from e33.co.us.ibm.com (HELO e33.co.us.ibm.com) (32.97.110.131) by apache.org (qpsmtpd/0.28) with ESMTP; Tue, 01 Feb 2005 16:40:00 -0800 Received: from westrelay02.boulder.ibm.com (westrelay02.boulder.ibm.com [9.17.195.11]) by e33.co.us.ibm.com (8.12.10/8.12.9) with ESMTP id j120dwCO670852 for ; Tue, 1 Feb 2005 19:39:58 -0500 Received: from [9.72.134.65] (dyn9072134065.usca.ibm.com [9.72.134.65]) by westrelay02.boulder.ibm.com (8.12.10/NCO/VER6.6) with ESMTP id j120dv53445678 for ; Tue, 1 Feb 2005 17:39:58 -0700 Message-ID: <4200215D.9050102@sbcglobal.net> Date: Tue, 01 Feb 2005 16:39:57 -0800 From: Mike Matrigali User-Agent: Mozilla Thunderbird 0.7.2 (Windows/20040707) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Derby Development Subject: Re: Derby architecture/design documents References: <3dee901305011721231508061c@mail.gmail.com> <41ED5411.7070302@bristowhill.com> <001201c4fd9b$2eb50530$1401a8c0@rpws002> <41EEAD7C.7020108@debrunners.com> <001801c4fe68$e5118100$0200000a@lan> <41F17533.7090700@bristowhill.com> <002a01c50004$91634b40$0200000a@lan> <41F18C91.1080706@bristowhill.com> <001001c50338$13595280$0200000a@lan> <41F6E08B.7090404@bristowhill.com> <000401c50340$88521c40$0200000a@lan> <41F6F0AC.5060705@bristowhill.com> <41F6F794.5060607@bristowhill.com> <002101c50732$7b9a5bc0$0200000a@lan> <41FE5F3D.5000308@bristowhill.com> <001701c507c2$ce128fe0$0200000a@lan> <41FE8158.8060605@bristowhill.com> <003501c507c8$815f7ea0$0200000a@lan> <41FE91BD.4030001@bristowhill.com> <41FEBFD0.5010201@bristowhill.com> <001d01c507ef$f14c1300$0200000a@lan> <002101c507fa$e4571d60$1401a8c0@rpws002> In-Reply-To: <002101c507fa$e4571d60$1401a8c0@rpws002> X-Enigmail-Version: 0.85.0.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N I think putting this information somewhere would be good, not sure what way would be best. javadoc tries to do some of it. Here is the high level: With Derby start with the "module", derby is made up of a set of modules like: language, store, access, log, data. So for the logging system there is (iapi is the java interface side, impl is the implementation side): opensource/java/engine/org/apache/derby/iapi/store/raw/log/LogFactory.java the java interface for logging system module opensource/java/engine/org/apache/derby/impl/store/raw/log/LogToFile.java the implmentation of the LogFactory.java, also implmenting Module, this is the one with recovery code. Quick note on other files in the impl/store/raw/log directory - comments should be in the files: CheckpointOperation.java - code to implment checkpoint log record D_FlushedScan.java - debugging file D_LogToFile.java - debugging file FileLogger.java - stuff dealing with putting log records to disk FlushedScan.java - stuff dealing with scanning the log file FlushedScanHandle.java - more stuff dealing with scanning the log file LogAccessFile.java - lowest level putting log records to disk LogAccessFileBuffer.java - utility for LogAccessFile LogCounter.java - log sequence number LogRecord.java - log record ReadOnly.java - an alternate read only implementation of LogFactory Scan.java - more scan log file stuff StreamLogScan.java - more scan log file stuff RPost wrote: > re logformats.xml > > I'm know I'm dating myself but in I Love Lucy here's where Ricky would say: > > "Lucy, you got some splainin' to do!" > > The last line of this xml file is: > > Loggable op - the log operation > > > At some point could we get an explanation as to how all of the log related > *.java files are pieced together? > > These files are difficult to piece together out of context because they are > a series of interfaces, abstract classes and implementation. I haven't been > able to sort it out. > > For example: > > public final class DeleteOperation extends LogicalPageOperation > > public abstract class LogicalPageOperation extends PageBasicOperation > implements LogicalUndoable > > public abstract class PageBasicOperation implements Loggable, > RePreparable > > public interface Loggable extends Formatable { > > 1. How do all of these pieces fit together? > > 2. What, exactly, gets written to the log record for a delete operation? > That is, what is 'Loggable op' for this case? > > 3. What are the set of implemented classes that write to the log? The > DeleteOperation class appears to be one, what are the others? > > >