db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Suresh Thalamati (JIRA)" <derby-...@db.apache.org>
Subject [jira] Updated: (DERBY-239) Need a online backup feature that does not block update operations when online backup is in progress.
Date Fri, 07 Oct 2005 18:49:51 GMT
     [ 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 tests

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: 10.1.1.0
>     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.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


Mime
View raw message