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

Replica regions does not return back the MSLAB chunks to pool

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Critical
    • Resolution: Fixed
    • 2.0.0-alpha-4
    • 2.0.0-beta-2, 2.0.0
    • None
    • None
    • Reviewed

    Description

      When we have region replica enabled, we try to replicate the flush markers. In the replica region on receiving the FLUSH_START_MARKER we create a snapshot. On receiving COMMIT_FLUSH_MARKER we just update the store files and clear the snapshot. But in the recent trunk code while creating snapshot (need to verify in other branches too)

          this.timeRangeTracker = snapshot.getTimeRangeTracker();
          this.scanners = snapshot.getScanners(Long.MAX_VALUE, Long.MAX_VALUE);
          this.tagsPresent = snapshot.isTagsPresent();
      

      The scanners that we create internally increment the openScannerCount per MSLAB. But since in this case we don't call scanner.close() we don't decrement the scanner count and so the MSLAB chunks are not returned back to the pool when the snapshot is closed in the replica region.

      int count  = openScannerCount.get();
          LOG.info("the count is "+count);
          if(count == 0) {
            recycleChunks();
      

      This is a critical bug.

      Attachments

        1. HBASE-19732.patch
          0.9 kB
          ramkrishna.s.vasudevan
        2. HBASE-19732_1.patch
          1 kB
          ramkrishna.s.vasudevan
        3. HBASE-19732_2.patch
          2 kB
          ramkrishna.s.vasudevan

        Activity

          People

            ram_krish ramkrishna.s.vasudevan
            ram_krish ramkrishna.s.vasudevan
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: