[ 
https://issues.apache.org/jira/browse/HBASE-8465?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13647045#comment-13647045
 ] 

Jonathan Hsieh commented on HBASE-8465:
---------------------------------------

This is why I wrote this comment:
https://issues.apache.org/jira/browse/HBASE-8465?focusedCommentId=13645603&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13645603

One underlying assumption is that snapshots are in a good state (they have to 
be to pass the verification step when taking a snapshot).  Operations working 
on a table can fail, and leave the table in a bad state (for example: master 
crash mid-restore, mid-alter).  Thus I think it is more likely to have a bad 
table than a bad snapshot.

Looking at the cases, it seems to make more sense to provide the admin the 
option to skip taking the snapshot (if our table is currently bad) so that we 
only have good snapshots.  Taking the snapshot and then deleting it seems like 
unnecessary work.  

                
> Auto-drop rollback snapshot for snapshot restore
> ------------------------------------------------
>
>                 Key: HBASE-8465
>                 URL: https://issues.apache.org/jira/browse/HBASE-8465
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Ted Yu
>            Assignee: Ted Yu
>             Fix For: 0.98.0, 0.95.1
>
>         Attachments: 8465-trunk-v1.txt, 8465-trunk-v2.txt
>
>
> Below is an excerpt from snapshot restore javadoc:
> {code}
>    * Restore the specified snapshot on the original table. (The table must be 
> disabled)
>    * Before restoring the table, a new snapshot with the current table state 
> is created.
>    * In case of failure, the table will be rolled back to the its original 
> state.
> {code}
> We can improve the handling of rollbackSnapshot in two ways:
> 1. give better name to the rollbackSnapshot (adding 
> {code}'-for-rollback-'{code}). Currently the name is of the form:
>     String rollbackSnapshot = snapshotName + "-" + 
> EnvironmentEdgeManager.currentTimeMillis();
> 2. drop rollbackSnapshot at the end of restoreSnapshot() if the restore is 
> successful. We can introduce new config param, named 
> 'hbase.snapshot.restore.drop.rollback', to keep compatibility with current 
> behavior.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to