[ISSUE] (TEPHRA-45) Support empty values in HBase 0.98+

0 views
Skip to first unread message

Gary Helmling (JIRA)

unread,
Mar 9, 2015, 9:00:03 PM3/9/15
to tephr...@googlegroups.com
Gary Helmling updated an issue
 
Tephra / Improvement TEPHRA-45
Support empty values in HBase 0.98+
Change By: Gary Helmling
Labels: phoenix
Add Comment Add Comment
 
This message was sent by Atlassian JIRA (v6.1.5#6160-sha1:a61a0fc)
Atlassian logo

Gary Helmling (JIRA)

unread,
Mar 12, 2015, 2:01:04 AM3/12/15
to tephr...@googlegroups.com
Gary Helmling commented on an issue
 
Re: Support empty values in HBase 0.98+

Cell tags themselves are supported in HBase 0.98+, but the new HFile format version 3, which is required to persist cell tags, is only enabled by default in HBase 1.0+. So we will either need to limit this feature to HBase 1.0+, or conditionally enable it on HBase 0.98+ if the HFile format being used is 3+. Without this, we would lose the cell tags identifying the delete markers when those cells are flushed to a store file.

Tephra currently handles Delete operations by issuing a Put with an empty byte[] value and interpreting this as a delete tombstone when reading data back. This makes it possible to rollback a Tephra "delete" from a failed transaction with a native HBase Delete issued at the same column/timestamp.

With support for cell tags in HBase 0.98+, we can do be...

Gary Helmling (JIRA)

unread,
Aug 5, 2015, 5:46:21 PM8/5/15
to tephr...@googlegroups.com
Gary Helmling updated an issue
Support empty values in HBase 1.0+
Change By: Gary Helmling
Summary: Support empty values in HBase  0  1 . 98 0 +
Component/s: hbase-compat-0.98
Tephra currently handles Delete operations by issuing a Put with an empty byte[] value and interpreting this as a delete tombstone when reading data back.  This makes it possible to rollback a Tephra "delete" from a failed transaction with a native HBase Delete issued at the same column/timestamp.

With support for cell tags in HBase  0  1 . 98 0 +  (where HFile v3 is enabled by default) , we can do better than this, by setting a cell tag indicating that the Put is actually a "delete".  This will allow us to correctly distinguish between a Put with an empty value and a delete tombstone.
Reply all
Reply to author
Forward
0 new messages