Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-11339 HBase MOB
  3. HBASE-13922

Do not reset mvcc in compactions for mob-enabled column

    XMLWordPrintableJSON

    Details

    • Type: Sub-task
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: hbase-11339
    • Fix Version/s: hbase-11339, 2.0.0
    • Component/s: mob
    • Labels:
      None
    • Hadoop Flags:
      Reviewed

      Description

      In major compaction, the mvcc of cells ( whose mvcc<=readPt) are set to 0.
      In some cases, this brings issues, for example the following scenario:

      1. We have mob enabled cf, the threshold is 5 bytes.
      2. Add a cell (r0,ts0,seqId=5,"mobValue0"), and flush it to a mob file.
      3. Add another cell (r0,ts0,seqId=10,"new"), and flush the memstore, this is not a mob cell since it's value is smaller than 5 bytes.
      4. Add the third cell (r1:ts1:seqId =15, "mobValue1"), and flush it to a mob file. Now we have two mob files.
      5. Now run a major compaction in hfiles, we got two cells left (r0:ts0:seqId=0,"new") and (r1:ts1:seqId=0,'mobValue1").
      6. Now run a mob major compaction, two mob files are merged into one. The update ref cell is bulk loaded back to hbase, they are (r0,ts0,seqId=5,"mobValue0") and (r1:ts1:seqId=0,"mobValue1").
      7. Now open a scanner, the value of r0 is mobValue0 whereas the correct value new.

      This issue is caused by the mvcc reset in compactions. We should disable it in compactions for mob-enabled columns.

        Attachments

        1. HBASE-13922.patch
          6 kB
          Jingcheng Du

          Activity

            People

            • Assignee:
              jingcheng.du@intel.com Jingcheng Du
              Reporter:
              jingcheng.du@intel.com Jingcheng Du
            • Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: