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

Use same EventLoopGroup for different AsyncRpcClients if possible

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 1.1.0, 2.0.0
    • 1.1.0, 2.0.0
    • IPC/RPC, test
    • None
    • Reviewed

    Description

      In some unit tests(such as TestAcidGuarantees) we create multiple Connection instance. If we use AsyncRpcClient, then there will be multiple netty Bootstrap and every Bootstrap has its own PooledByteBufAllocator.
      I haven't read the code clearly but it uses some threadlocal technics and jmap shows io.netty.buffer.PoolThreadCache$MemoryRegionCache$Entry is the biggest things on Heap.

      See https://builds.apache.org/job/HBase-TRUNK/6168/artifact/hbase-server/target/surefire-reports/org.apache.hadoop.hbase.TestAcidGuarantees-output.txt

      2015-02-24 23:50:29,704 WARN  [JvmPauseMonitor] util.JvmPauseMonitor$Monitor(167): Detected pause in JVM or host machine (eg GC): pause of approximately 20133ms
      GC pool 'PS MarkSweep' had collection(s): count=15 time=55525ms
      

      Update: We use a singleton PooledByteBufAllocator so the reason should be too many threads. So we will work on reduce the connections and rpclients in unit tests.

      Attachments

        1. HBASE-13097-addendum.patch
          1 kB
          Duo Zhang
        2. HBASE-13097.patch
          8 kB
          Duo Zhang
        3. HBASE-13097_2.patch
          64 kB
          Duo Zhang
        4. HBASE-13097_1.patch
          61 kB
          Duo Zhang

        Issue Links

          There are no Sub-Tasks for this issue.

          Activity

            People

              zhangduo Duo Zhang
              zhangduo Duo Zhang
              Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: