force delete option for use cases that explicitly set version/timestamp
-----------------------------------------------------------------------

                 Key: HBASE-3300
                 URL: https://issues.apache.org/jira/browse/HBASE-3300
             Project: HBase
          Issue Type: Improvement
            Reporter: Kannan Muthukkaruppan


Background: For use cases that explicitly set versions, after a delete, it is 
not possible to insert values with older versions. So for example if you did a 
puts (v1) and delete (@ v2), subsequent puts with an older version (e.g., v1) 
will not take effect since the delete has a higher version.

{code}
#1. PUT(row, col, version1,  old-value)
#2. DELETE(row, col, version2)
#3. PUT(row, col, version1, new-value)
{code}

The row/col stays deleted, and this is expected behavior since the delete has a 
higher timestamp.

Feature Request: It would be good to provide a "force" delete mechanism -- 
something that allows the row or a specific column to be started with a clean 
slate. i.e. forget about everything that happened to this item earlier, and 
lets you start afresh. Without this there is no good cleanup mechanism for use 
cases that set versions explicitly.

[Note: The only workaround for this depends on a subtle implementation detail 
that major compactions discard delete markers. So if a major compaction 
happened between steps #2 & #3, then you would in fact be able to put a value 
with an older version.]

Thoughts?




-- 
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