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

Compaction USER_PRIORITY is slightly broken

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • None
    • None
    • Compaction
    • None

    Description

      The code to get compaction priority is as such:

         public int getCompactPriority(int priority) {
           // If this is a user-requested compaction, leave this at the highest priority
           if(priority == Store.PRIORITY_USER) {
             return Store.PRIORITY_USER;
           } else {
             return this.blockingStoreFileCount - this.storefiles.size();
           }
         }
      

      .
      PRIORITY_USER is 1.
      The priorities are compared as numbers in HRegion, so compactions of blocking stores will override user priority (probably intended); also, if you have blockingFiles minus one, your priority is suddenly PRIORITY_USER, which may cause at least this:
      LOG.debug("Warning, compacting more than " + comConf.getMaxFilesToCompact() +
      " files because of a user-requested major compaction");
      as well as some misleading logging.

      Attachments

        1. HBASE-7791-v0.patch
          0.7 kB
          Sergey Shelukhin
        2. HBASE-7791-v1.patch
          2 kB
          Sergey Shelukhin
        3. HBASE-7791-v2.patch
          2 kB
          Sergey Shelukhin

        Issue Links

          Activity

            People

              sershe Sergey Shelukhin
              sershe Sergey Shelukhin
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: