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

use a specific ThreadPoolExecutor

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Minor
    • Resolution: Abandoned
    • 1.0.0, 2.0.0
    • None
    • Client, Performance
    • None

    Description

      The JDK TPE creates all the threads in the pool. As a consequence, we create (by default) 256 threads even if we just need a few.

      The attached TPE create threads only if we have something in the queue.
      On a PE test with replica on, it improved the 99 latency percentile by 5%.

      Warning: there are likely some race conditions, but I'm posting it here because there is may be an implementation available somewhere we can use, or a good reason not to do that. So feedback welcome as usual.

      Attachments

        1. tp.patch
          20 kB
          Nicolas Liochon
        2. LifoThreadPoolExecutorSQP.java
          19 kB
          Nicolas Liochon
        3. UnitQueueP.java
          3 kB
          Nicolas Liochon
        4. UnitQueuePU.java
          3 kB
          Nicolas Liochon
        5. ExecutorServiceTest.java
          25 kB
          Nicolas Liochon
        6. HBASE-11590.v1.patch
          51 kB
          Nicolas Liochon

        Activity

          People

            Unassigned Unassigned
            nkeywal Nicolas Liochon
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: