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

Ted Yu commented on HBASE-4344:
-------------------------------

This is due to KeyValue not remembering whether MemstoreTS is included.
One trick is to distinguish existence of MemstoreTS through a special value 
(e.g. -1).
Currently we have:
{code}
  // default value is 0, aka DNC
  private long memstoreTS = 0;
{code}
We can use -1 to distinguish the absence of MemstoreTS.
However, getMemstoreTS() would always return 0 if memstoreTS carries -1.

TestStoreFile passes with the above trick.

> Persist memstoreTS to disk
> --------------------------
>
>                 Key: HBASE-4344
>                 URL: https://issues.apache.org/jira/browse/HBASE-4344
>             Project: HBase
>          Issue Type: Sub-task
>            Reporter: Amitanand Aiyer
>            Assignee: Amitanand Aiyer
>             Fix For: 0.89.20100924
>
>         Attachments: 4344-v2.txt, 4344-v4.txt, patch-2
>
>
> Atomicity can be achieved in two ways -- (i) by using  a multiversion 
> concurrency system (MVCC), or (ii) by ensuring that "new" writes do not 
> complete, until the "old" reads complete.
> Currently, Memstore uses something along the lines of MVCC (called RWCC for 
> read-write-consistency-control). But, this mechanism is not incorporated for 
> the key-values written to the disk, as they do not include the memstore TS.
> Let us make the two approaches be similar, by persisting the memstoreTS along 
> with the key-value when it is written to the disk.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to