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

Flushing canceled by coprocessor still leads to memstoreSize set down

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 0.98.13, 1.0.2, 1.2.0, 1.1.1
    • 1.2.0, 1.3.0, 0.98.15, 1.1.3, 2.0.0
    • regionserver
    • None
    • Reviewed

    Description

      A Coprocessor override "public InternalScanner preFlush(final Store store, final InternalScanner scanner)" and return NULL when calling this method, will cancel flush request, leaving snapshot un-flushed, and no new storefile created. But the HRegion.internalFlushCache still set down memstoreSize to 0 by totalFlushableSize.
      If there's no write requests anymore, the memstoreSize will remaining as 0, and no more flush quests will be processed because of the checking of memstoreSize.get() <=0 at the beginning of internalFlushCache.
      This issue may not cause data loss, but it will confuse coprocessor users. If we argree with this, I'll apply a patch later.

      Attachments

        1. HBASE-14229-master.patch
          10 kB
          Yerui Sun
        2. HBASE-14229-0.98-v2.patch
          11 kB
          Yerui Sun
        3. HBASE-14229-branch-1-v2.patch
          10 kB
          Yerui Sun
        4. HBASE-14229-branch-1-v2.patch
          10 kB
          Yerui Sun
        5. HBASE-14229-branch-1.patch
          10 kB
          Yerui Sun
        6. HBASE-14229-0.98.patch
          11 kB
          Yerui Sun

        Activity

          People

            sunyerui Yerui Sun
            sunyerui Yerui Sun
            Votes:
            0 Vote for this issue
            Watchers:
            8 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: