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

Jonathan Gray commented on HBASE-2376:
--------------------------------------

The initial idea is that we'd introduce a new per-family configuration, 
something like TTKAV (Time To Keep All Versions).  This setting would define 
how far back you would be able to perform this snapshot.  In practice, it might 
be something like 1 day or 1 week, but could be configured.  This setting would 
ensure that no versions are deleted until outside the TTKAV.  Once outside that 
range, the original TTL and MaxVersions settings would be enforced (on major 
compactions).

The second piece would be a special SnapshotScanner that took a timestamp and 
returned data as it was at that timestamp.  This stamp would of course have to 
be less than now() and greater than now() - TTKAV.  It would have the smarts to 
basically toss out anything with a newer stamp, including deletes.

The reason for introducing a new parameter is that you must keep all versions 
of everything in order to perform the back-in-time snapshot, but you don't want 
to force constraints on how you would use the normal maxVersions/TTL parameters 
to clear out multiple versions of stuff during major compactions (once outside 
the snapshotable time window).

> Add special SnapshotScanner which presents view of all data at some time in 
> the past
> ------------------------------------------------------------------------------------
>
>                 Key: HBASE-2376
>                 URL: https://issues.apache.org/jira/browse/HBASE-2376
>             Project: Hadoop HBase
>          Issue Type: New Feature
>          Components: client, regionserver
>    Affects Versions: 0.20.3
>            Reporter: Jonathan Gray
>
> In order to support a particular kind of database "snapshot" feature which 
> doesn't require copying data, we came up with the idea for a special 
> SnapshotScanner that would present a view of your data at some point in the 
> past.  The primary use case for this would be to be able to recover 
> particular data/rows (but not all data, like a global rollback) should they 
> have somehow been messed up (application fault, application bug, user error, 
> etc.).

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to