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

Add log for long-running tasks in AsyncProcess

    XMLWordPrintableJSON

Details

    • Reviewed
    • Hide
      After HBASE-15931, we will log more details for long-running tasks in AsyncProcess#waitForMaximumCurrentTasks every 10 seconds, including:
      1. Table name will be included in the tasks status log
      2. On which regionserver(s) the tasks are runnning will be logged when less than hbase.client.threshold.log.details tasks left, by default 10.
      3. Against which regions the tasks are running will be logged when less than 2 tasks left.
      Show
      After HBASE-15931 , we will log more details for long-running tasks in AsyncProcess#waitForMaximumCurrentTasks every 10 seconds, including: 1. Table name will be included in the tasks status log 2. On which regionserver(s) the tasks are runnning will be logged when less than hbase.client.threshold.log.details tasks left, by default 10. 3. Against which regions the tasks are running will be logged when less than 2 tasks left.

    Description

      Currently if there's any long-tail tasks in a multi-action request like triggered by BufferedMutatorImpl#backgroundFlushCommits, we could see logging message like below

      2016-05-31 09:36:55,461 INFO [Thread-16] org.apache.hadoop.hbase.client.AsyncProcess: #28, waiting for some tasks to finish. Expected max=0, tasksInProgress=1
      

      but there's no way to know detail of this long-tail, such as which table/region it's accessing. This JIRA aims at adding such log for easier debugging.

      Attachments

        1. HBASE-15931.patch
          7 kB
          Yu Li

        Activity

          People

            liyu Yu Li
            liyu Yu Li
            Votes:
            0 Vote for this issue
            Watchers:
            8 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: