[
https://issues.apache.org/jira/browse/HBASE-11292?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14281229#comment-14281229
]
Lars Hofhansl commented on HBASE-11292:
---------------------------------------
The other tricky part is to to avoid removing identical cells (in terms of row,
col, ts) if their type is UNDO.
Also do we need REDO? What if we "undid" a delete, and then want to delete at
the exact coordinates (row, col, ts) again? That delete would continue to be
shadowed until the UNDO marker is gone, or we undo the UNDO.
Would need to carefully think through the compaction implications. F.e. when
can I safely compact the UNDO markers? Need to be able to guarantee that every
affected Cell is also deleted. That is not true for all compactions (not even
major ones).
> 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.3.4#6332)