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

BuckeCache.evictBlocksByHfileName won't work after a cache recovery from file

    XMLWordPrintableJSON

Details

    Description

      HBASE-27313, HBASE-27686 and HBASE-27743 have extended BucketCache persistent cache capabilities to make it resilient to RS crashes or non graceful stops, when using file based ioengine for BucketCache.

      BucketCache maintains two main collections for tracking blocks in the cache: backingMap and blocksByHFile. The former is used as the main index of blocks for the actual cache, whilst the latter is a set of all blocks in the cache ordered by name, in order to conveniently and efficiently retrieve the list of all blocks from a single file in the BucketCache.evictBlocksByHfile method.

       

      The problem is that at cache recovery time, we are populating the blocksByHFile set, which causes any calls to BucketCache.evictBlocksByHfile method to not evict any blocks, once we have recovered the cache from the cache persistence file (for instance, after a n RS restart).

      Attachments

        Issue Links

          Activity

            People

              wchevreuil Wellington Chevreuil
              wchevreuil Wellington Chevreuil
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: