hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Anoop Sam John (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (HBASE-13836) Do not reset the mvcc for bulk loaded mob reference cells in reading
Date Wed, 10 Jun 2015 06:58:02 GMT

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

Anoop Sam John edited comment on HBASE-13836 at 6/10/15 6:57 AM:
-----------------------------------------------------------------

Sorry for not observing this in 1st review.
{code}
+    long seqId = cell.getSequenceId();
+    assertEquals("After compaction: mob value", "mobValue1",
+      Bytes.toString(CellUtil.cloneValue(cell)));
+    // read the ref cell, not read further to the mob cell.
+    get.setAttribute(MobConstants.MOB_SCAN_RAW, Bytes.toBytes(true));
+    result = hTable.get(get);
+    cell = result.getColumnLatestCell(hcd1.getName(), Bytes.toBytes(qf1));
+    assertEquals("After compaction: mob cell seqId", seqId, cell.getSequenceId());
{code}
Here we try to assert the seqId of cell at client side.  We don't write it over wire.  SeqId
make sense only at server.  May be you can have a test which do mob compaction and after that
the read will return the correct MOB value.

Or else your test has to have some CPs where the postGet can get the seqId of returned cell.
This may be not really needed IMO.


was (Author: anoop.hbase):
Sorry for not observing this in 1st review.
{code}
+    long seqId = cell.getSequenceId();
+    assertEquals("After compaction: mob value", "mobValue1",
+      Bytes.toString(CellUtil.cloneValue(cell)));
+    // read the ref cell, not read further to the mob cell.
+    get.setAttribute(MobConstants.MOB_SCAN_RAW, Bytes.toBytes(true));
+    result = hTable.get(get);
+    cell = result.getColumnLatestCell(hcd1.getName(), Bytes.toBytes(qf1));
+    assertEquals("After compaction: mob cell seqId", seqId, cell.getSequenceId());
{code}
Here we try to assert the seqId of cell at client side.  We don't write it over wire.  SeqId
make sense only at server.  May be you can have a test which do mob compaction and after that
the read will return the correct MOB value.

> Do not reset the mvcc for bulk loaded mob reference cells in reading
> --------------------------------------------------------------------
>
>                 Key: HBASE-13836
>                 URL: https://issues.apache.org/jira/browse/HBASE-13836
>             Project: HBase
>          Issue Type: Sub-task
>          Components: mob
>    Affects Versions: hbase-11339
>            Reporter: Jingcheng Du
>            Assignee: Jingcheng Du
>             Fix For: hbase-11339
>
>         Attachments: HBASE-13836-V2.diff, HBASE-13836.diff
>
>
> Now in scanner, the cells mvcc of the bulk loaded files are reset by the seqId parsed
from the file name. We need to skip this if the hfiles are bulkloaded in mob compactions.
> In mob compaction, the bulk loaded ref cell might not be the latest cell among the ones
that have the same row key. In reading, the mvcc is reset by the largest one, it will cover
the real latest ref cell. We have to skip the resetting in this case.
> The solution is we add a new field to fileinfo, when this field is set as true, we skip
the resetting.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message