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: Can anyone give me some suggestions?
Date Tue, 23 Aug 2005 02:34:16 GMT
>From: Mike Matrigali <mikem_app@sbcglobal.net>
>Reply-To: "Derby Development" <derby-dev@db.apache.org>
>Ok, just to be clear Derby checkpoints are already asynchronous.
>The one synchrounous point is that while a page is being written
>no update that exact page can be happening.
>Updates to all other pages in the
>database may be going on concurrently with this operation.  So unless
>you are worried about concurrency on the single page, I believe
>Derby checkpoints already do what you describe.
>In the case of Derby the list is the numerical order list of buffers
>in the cache, and is always traversed in order.  The checkpoint is
>done by a background thread asynchronous to other user threads.

hi, Dear Mike Matrigali ,thanks for your comment. I am a novice of derby.
I still have some questions about this issue. I looked
into the present derby source code. I read the source
of org.apache.derby.impl.store.raw.log.LogToFile.checkpoint()
and org.apache.derby.impl.store.raw.log.LogToFile.checkpointWithTran(),
I found that it clean the buffer cache during the checkpoint by calling
df.checkpoint() (df is an instance of DataFactory)
I also looked into the source code of
and org.apache.derby.impl.services.cache.Clock.cleanAll()
and org.apache.derby.impl.services.cache.Clock.cleanCache()
which are called nested to write out the dirty pages.
So, I think, presently in derby,when an checkpoint is being taken, it will
wait for all the dirty pages being written out and then write out the 
log and any other things needed to be done.


Take charge with a pop-up guard built on patented Microsoft® SmartScreen 

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

View raw message