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

Add mechanism to control hbase cleaner behavior

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Minor
    • Resolution: Fixed
    • 1.0.0, 2.0.0
    • 1.4.0, 2.0.0
    • Client, shell
    • None
    • Reviewed
    • Hide
      The HBase cleaner chore process cleans up old WAL files and archived HFiles. Cleaner operation can affect query performance when running heavy workloads, so disable the cleaner during peak hours. The cleaner has the following HBase shell commands:

      - cleaner_chore_enabled: Queries whether cleaner chore is enabled/ disabled.
      - cleaner_chore_run: Manually runs the cleaner to remove files.
      - cleaner_chore_switch: enables or disables the cleaner and returns the previous state of the cleaner. For example, cleaner-switch true enables the cleaner.

      Following APIs are added in Admin:
      - setCleanerChoreRunning(boolean on): Enable/Disable the cleaner chore
      - runCleanerChore(): Ask for cleaner chore to run
      - isCleanerChoreEnabled(): Query whether cleaner chore is enabled/ disabled.
      Show
      The HBase cleaner chore process cleans up old WAL files and archived HFiles. Cleaner operation can affect query performance when running heavy workloads, so disable the cleaner during peak hours. The cleaner has the following HBase shell commands: - cleaner_chore_enabled: Queries whether cleaner chore is enabled/ disabled. - cleaner_chore_run: Manually runs the cleaner to remove files. - cleaner_chore_switch: enables or disables the cleaner and returns the previous state of the cleaner. For example, cleaner-switch true enables the cleaner. Following APIs are added in Admin: - setCleanerChoreRunning(boolean on): Enable/Disable the cleaner chore - runCleanerChore(): Ask for cleaner chore to run - isCleanerChoreEnabled(): Query whether cleaner chore is enabled/ disabled.

    Description

      Cleaner is used to get rid of archived HFiles and old WALs in HBase.
      In the case of heavy workload, cleaner can affect query performance by creating a lot of connections to perform costly reads/ writes against underlying filesystem.

      This patch allows the user to control HBase cleaner behavior by providing shell commands to enable/ disable and manually run it.

      Our main intention with this patch was to avoid running the expensive cleaner chore during peak times. During our experimentation, we saw a lot of HFiles and WAL log related files getting created inside archive dir (didn't see ZKlock related files). Since we were replacing hdfs with S3, these delete calls will take forever to complete.

      Attachments

        1. HBASE-17280.branch-1.001.patch
          271 kB
          Ajay Jadhav
        2. HBASE-17280.branch-1.002.patch
          270 kB
          Ajay Jadhav
        3. HBASE-17280.master.003.patch
          414 kB
          Ajay Jadhav
        4. HBASE-17280.master.004.patch
          429 kB
          Ajay Jadhav
        5. HBASE-17280.master.005.patch
          417 kB
          Ajay Jadhav

        Activity

          People

            ajayjadhav Ajay Jadhav
            ajayjadhav Ajay Jadhav
            Votes:
            0 Vote for this issue
            Watchers:
            8 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: