db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mike Matrigali <mikem_...@sbcglobal.net>
Subject Re: [jira] Updated: (DERBY-239) Need a online backup feature that does not block update operations when online backup is in progress.
Date Thu, 20 Oct 2005 05:08:30 GMT
I have reviewed and run tests on this patch.  It has been committed as 

Suresh Thalamati (JIRA) wrote:
>      [ http://issues.apache.org/jira/browse/DERBY-239?page=all ]
> Suresh Thalamati updated DERBY-239:
> -----------------------------------
>     Attachment: onlinebackup_1.diff
> This patch adds some code necessary to support  real-time online backup that
> does not block writes when database backup is in progress. All the current functional
> passed with these changes. It would be great if some can review and commit this patch.

> This patch changes the way data segment and log is backed up without blocking
> the writes. 
> Data Segment Backup:
>    o  The containers to be backed up are found by scanning the files in seg0.
>    o  Each container is backed up by reading all the pages through the page cache,
>       and then writing to the backup container. Pages are latched while 
>       writing into the backup container. 
>    o  Not necessary to backup containers in any particular order , All updates
>       that happens after a container is backed will be redone using the
>       transaction log on restore. 
>   MT cases:
>    1) Each page is latched when it is written to the backup to prevent partial 
>       written pages sneaking into the backup. 
>    2) Thread that is backing up the container will stop if another thread
>       requests removal of the container when container is being backed up. 
>    3) Truncate of the container blocks if the container is being backed up. 
>    4) Partially created containers will not be backed up. Container cache will
>       not return the container items until the creation is complete. 
>       (No changes are not for this case , that is how it currently works). 
> Transaction Log Backup:
>     Transaction Log file  backup in two phases:
>     1) First Check point info and the the log files are backed up before the
>     data segment.  
>     2) After the data segment is backed up , all the log files 
>        that are generated after tha backup started are also copied into the backup. 
>   MT cases:
>       1) If there is a checkpoint in progress, backup will wait for the
>        checkpoint to complete before copying checkpoint control information
>        into the backup.
> Testing : All functional tests(derbyall suite)  passed on jdk142/Windows XP. 
> svn status:
> M      java\engine\org\apache\derby\impl\store\raw\log\ReadOnly.java
> M      java\engine\org\apache\derby\impl\store\raw\log\LogToFile.java
> M      java\engine\org\apache\derby\impl\store\raw\RawStore.java
> M      java\engine\org\apache\derby\impl\store\raw\data\BasePage.java
> M      java\engine\org\apache\derby\impl\store\raw\data\InputStreamContainer.jav
> a
> M      java\engine\org\apache\derby\impl\store\raw\data\BaseDataFileFactory.java
> M      java\engine\org\apache\derby\impl\store\raw\data\CachedPage.java
> M      java\engine\org\apache\derby\impl\store\raw\data\FileContainer.java
> M      java\engine\org\apache\derby\impl\store\raw\data\BaseContainer.java
> M      java\engine\org\apache\derby\impl\store\raw\data\BaseContainerHandle.java
> M      java\engine\org\apache\derby\impl\store\raw\data\RAFContainer.java
> M      java\engine\org\apache\derby\iapi\store\raw\log\LogFactory.java
> M      java\engine\org\apache\derby\iapi\store\raw\data\DataFactory.java
> M      java\engine\org\apache\derby\iapi\store\raw\ContainerHandle.java
>>Need a online backup feature  that does not block update operations   when online
backup is in progress.
>>         Key: DERBY-239
>>         URL: http://issues.apache.org/jira/browse/DERBY-239
>>     Project: Derby
>>        Type: New Feature
>>  Components: Store
>>    Versions:
>>    Reporter: Suresh Thalamati
>>    Assignee: Suresh Thalamati
>> Attachments: onlinebackup.html, onlinebackup_1.diff
>>Currently Derby allows users to perfoms  online backups using SYSCS_UTIL.SYSCS_BACKUP_DATABASE()
procedure,  but while the backup is in progress, update operations are temporarily blocked,
but read operations can still proceed.
>>Blocking update operations can be real issue specifically in client server environments,
because user requests will be blocked for a long time if a 
>>backup is in the progress on the server.

View raw message