[
https://issues.apache.org/jira/browse/HBASE-4344?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13109877#comment-13109877
]
Lars Hofhansl commented on HBASE-4344:
--------------------------------------
TestSeekTo fails because HFileReaderV2.ScannerV2.getFirstKeyInBlock(...) does
not honor includeMemstoreTS. Needs to be checked like this:
{code}
private ByteBuffer getFirstKeyInBlock(HFileBlock curBlock) {
ByteBuffer buffer = curBlock.getBufferWithoutHeader();
// It is safe to manipulate this buffer because we own the buffer object.
buffer.rewind();
+ if (((HFileReaderV2)this.reader).includeMemstoreTS()) {
+ buffer.getLong(); // skip memstoreTS
+ }
int klen = buffer.getInt();
buffer.getInt();
ByteBuffer keyBuff = buffer.slice();
keyBuff.limit(klen);
keyBuff.rewind();
return keyBuff;
}
{code}
> 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, 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