[
https://issues.apache.org/jira/browse/HBASE-4344?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Amitanand Aiyer updated HBASE-4344:
-----------------------------------
Attachment: patch-2
There are three parts to the changes made here:
The first one is in the write path, while writing the HFile (V2). We include
the memstoreTS along with the other information already written during the
KeyValue.
We maintain and append to the file info the maximum memstoreTS found among all
the key-values written to the disk. The presence of this information in the
file info represents the fact that the Key-values written to the HFile is in
the new format that includes the memstoreTS.
Part 2: The reader is modified accordingly to see if the file info suggests the
presence of the memstoreTS or not. If it does, then we also read the memstoreTS
while preparing the KeyValues in the reader.
Part 3: On Region open/initialize, we need to ensure that the RWCC is
initialized with a value bigger than the max of any value found in the
storeFiles. this is necessary to ensure that the writes in the storefiles are
seen by future reads.
> 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: 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