hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Enis Soztutar (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-8763) [BRAINSTORM] Combine MVCC and SeqId
Date Wed, 30 Apr 2014 02:28:15 GMT

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

Enis Soztutar commented on HBASE-8763:

Great to see progress Jeffrey. 

As talked offline, I think we do not want to allocate 2 objects on heap rather than one: 
-  private long mvcc = 0;  // this value is not part of a serialized KeyValue (not in HFiles)
+  private MutableLong mvcc;  // this value is not part of a serialized KeyValue (not in HFiles)
Although, changing the mvcc long after object construction may require it to be declared volatile.

I think you are using the technique of double incrementing the seqId, once at trx start and
once at end right? Did you try your "append 1B to seqId for memstore" approach? 

I think I also changed Cell.getMvcc() to Cell.getSeqId(). Maybe worth doing once we get the
patch fully running and performant. 

> [BRAINSTORM] Combine MVCC and SeqId
> -----------------------------------
>                 Key: HBASE-8763
>                 URL: https://issues.apache.org/jira/browse/HBASE-8763
>             Project: HBase
>          Issue Type: Improvement
>          Components: regionserver
>            Reporter: Enis Soztutar
>            Assignee: Jeffrey Zhong
>            Priority: Critical
>         Attachments: hbase-8736-poc.patch, hbase-8763-poc-v1.patch, hbase-8763_wip1.patch
> HBASE-8701 and a lot of recent issues include good discussions about mvcc + seqId semantics.
It seems that having mvcc and the seqId complicates the comparator semantics a lot in regards
to flush + WAL replay + compactions + delete markers and out of order puts. 
> Thinking more about it I don't think we need a MVCC write number which is different than
the seqId. We can keep the MVCC semantics, read point and smallest read points intact, but
combine mvcc write number and seqId. This will allow cleaner semantics + implementation +
smaller data files. 
> We can do some brainstorming for 0.98. We still have to verify that this would be semantically
correct, it should be so by my current understanding.

This message was sent by Atlassian JIRA

View raw message