Uploaded image for project: 'Hive'
  1. Hive
  2. HIVE-17586

Make HS2 BackgroundOperationPool not fixed

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Patch Available
    • Major
    • Resolution: Unresolved
    • 1.1.0
    • None
    • HiveServer2
    • None

    Description

      Currently the threadpool for background asynchronous operatons has a fixed size controled by hive.server2.async.exec.threads. However, the thread factory supplied for this threadpool is ThreadFactoryWithGarbageCleanup which creates ThreadWithGarbageCleanup. Since this is a fixed threadpool, the thread is actually never killed, defecting the purpose of garbage cleanup as noted in the thread class name. On the other hand, since these threads never go away, significant resources such as threadlocal variables (classloaders, hiveconfs, etc) are holding up even if there is no operation running. This can lead to escalated HS2 memory usage.

      Ideally, the threadpool should not be fixed, allowing thread to die out so resources can be reclaimed. The existing config hive.server2.async.exec.threads is treated as the max, and we can add a min for the threadpool hive.server2.async.exec.min.threads. Default value for this configure is -1, which keeps the existing behavior.

      Attachments

        1. HIVE-17586.1.patch
          5 kB
          Xuefu Zhang
        2. HIVE-17586.patch
          5 kB
          Xuefu Zhang

        Activity

          People

            xuefuz Xuefu Zhang
            xuefuz Xuefu Zhang
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated: