db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Raymond Raymond" <raymond_de...@hotmail.com>
Subject Re: Re: Is there any means to get the size of a log record?
Date Wed, 01 Mar 2006 23:26:21 GMT
If I can know the size of log file which is needed to be scaned
during ecovery, I can caculate the speed of recovery in X KB/second.
I got an idea to estimate the size of log which is needed to be
scaned during recovery. But I am not sure whither it is correct
or not.

As far as I know, derby will truncate useless log file after:
-- a intact checkpoint is finished
-- after recovery is finished
Can I say when derby boots, all the log files remained in the log
folder are the log files needed to be scaned by recovery process?
If it is true, I can estimate how much log need to be scaned by

amount of log file * size of log file

(the size of log file is almost the same for each log file, defaultly it
is 1M in derby)

This estimation is not very accurate, but I think the result is good
enough.Any comments?



>From: Mike Matrigali <mikem_app@sbcglobal.net>
>I have not had time to look at the specific code.  My guess is that
>you will have to add code to the redo and undo recovery loops to
>track how much they have read.  This may involve changing the internal
>interfaces to get at lengths of each log record - not sure.
>you might look at the code that tracks how much log space has been
>using in normal logging currently used for scheduling a checkpoint
>as a pointer to how to track log size.
>Raymond Raymond wrote:
>>I am trying to do some statistics to estimate recovery speed.
>>I can get how many log records the recovery process scaned
>>during the recovery and how long the recovery takes.The recovery
>>speed I got so far is something like
>>X log records/second
>>But, to use the recovery speed to schedule the checkpoint,
>>I need it likes
>>X KB/second
>>I looked into the org.apache.derby.impl.store.raw.log.LogToFile.java .
>>The checkpoint is trigger in the flush(long fileNumber, long 
>>function. The condition to trigger a checkpoint is :
>>if ((logWrittenFromLastCheckPoint + potentialLastFlush) > 
>>checkpointInterval &&
>>?checkpointDaemon != null && !checkpointDaemonCalled && !inLogSwitch)
>>logWrittenFromLastCheckPoint, potentialLastFlush and?checkpointInterval
>>are in size (X bytes), so, I need the revovery speed in size (e.g. X 
>>In another word, I want to know how much (KB) log the recovery process
>>scaned during recovery. I refered to
>>it says the log record wrapper keeps the length of the log record.
>>I checked the source code and found the length of the log record
>>is only used in the getNextRecordBackward() and getNextRecordForward()
>>functions in org.apache.derby.impl.store.raw.log.Scan.java. I can't
>>get it outside those functions. Anyone can give me some suggestions to
>>solve the problem?
>>Powerful Parental Controls Let your child discover the best the Internet 
>>has to offer.  

>>  Start enjoying all the benefits of MSN?Premium right now and get the 
>>first two months FREE*.

Take advantage of powerful junk e-mail filters built on patented Microsoft® 
SmartScreen Technology. 

  Start enjoying all the benefits of MSN® Premium right now and get the 
first two months FREE*.

View raw message