Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-13877

Interrupt to flush from TableFlushProcedure causes dataloss in ITBLL

    XMLWordPrintableJSON

    Details

      Description

      ITBLL with 1.25B rows failed for me (and Stack as reported in https://issues.apache.org/jira/browse/HBASE-13811?focusedCommentId=14577834&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14577834)

      HBASE-13811 and HBASE-13853 fixed an issue with WAL edit filtering.

      The root cause this time seems to be different. It is due to procedure based flush interrupting the flush request in case the procedure is cancelled from an exception elsewhere. This leaves the memstore snapshot intact without aborting the server. The next flush, then flushes the previous memstore with the current seqId (as opposed to seqId from the memstore snapshot). This creates an hfile with larger seqId than what its contents are. Previous behavior in 0.98 and 1.0 (I believe) is that after flush prepare and interruption / exception will cause RS abort.

        Attachments

        1. hbase-13877_v5-branch-1.1.patch
          29 kB
          Enis Soztutar
        2. hbase-13877_v2-to-v4-branch-1.1.patch
          22 kB
          Enis Soztutar
        3. hbase-13877_v3-branch-1.1.patch
          28 kB
          Enis Soztutar
        4. hbase-13877_v2-branch-1.1.patch
          9 kB
          Enis Soztutar
        5. hbase-13877_v1.patch
          9 kB
          Enis Soztutar

          Issue Links

            Activity

              People

              • Assignee:
                enis Enis Soztutar
                Reporter:
                enis Enis Soztutar
              • Votes:
                0 Vote for this issue
                Watchers:
                9 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: