You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Lars Hofhansl (JIRA)" <ji...@apache.org> on 2014/07/26 23:23:38 UTC

[jira] [Commented] (HBASE-11292) Add an "undelete" operation

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

Lars Hofhansl commented on HBASE-11292:
---------------------------------------

Can we turn this around and implement undelete with redoing the corresponding put and handling the ambiguities with seq ids?
I've been arguing against this, since it would break idempotency of HBase actions, but on light of this I might relent :)
I guess it would require to know what exactly the delete affected, which may or may not possible.

Yet another way to look at it is: why undelete at all? Ignoring failed transactions needs to be implemented anyway, so instead of undo one could just continue to ignore the transaction.

> Add an "undelete" operation
> ---------------------------
>
>                 Key: HBASE-11292
>                 URL: https://issues.apache.org/jira/browse/HBASE-11292
>             Project: HBase
>          Issue Type: New Feature
>          Components: Deletes
>            Reporter: Gary Helmling
>              Labels: Phoenix
>
> While column families can be configured to keep deleted cells (allowing time range queries to still retrieve those cells), deletes are still somewhat unique in that they are irreversible operations.  Once a delete has been issued on a cell, the only way to "undelete" it is to rewrite the data with a timestamp newer than the delete.
> The idea here is to add an "undelete" operation, that would make it possible to cancel a previous delete.  An undelete operation will be similar to a delete, in that it will be written as a marker ("tombstone" doesn't seem like the right word).  The undelete marker, however, will sort prior to a delete marker, canceling the effect of any following delete.
> In the absence of a column family configured to KEEP_DELETED_CELLS, we can't be sure if a prior delete marker and the effected cells have already been garbage collected.  In this case (column family not configured with KEEP_DELETED_CELLS) it may be necessary for the server to reject undelete operations to avoid creating the appearance of a client contact for undeletes that can't reliably be honored.
> I think there are additional subtleties of the implementation to be worked out, but I'm also interested in a broader discussion of interest in this capability.



--
This message was sent by Atlassian JIRA
(v6.2#6252)