Uploaded image for project: 'Infinispan'
  1. Infinispan
  2. ISPN-3702

Too many threads for cleaning up infinispan transactions

This issue belongs to an archived project. You can view it, but you can't modify it. Learn more

XMLWordPrintable

      When using multiple transactional caches, we are seeing that each cache has a dedicated cleanup thread. While this is not an issue for small number of caches, when the number of caches is high as in our case (~100), we see around a 100 threads dedicated for cleanup like the following.

      "TxCleanupService,

      {default}_{XXX},user-mac-54275" daemon prio=5 tid=0x00007fa0f50d3800 nid=0x10f03 waiting on condition [0x00000001a5a5d000]
      "TxCleanupService,{default}

      _

      {XXX},user-mac-54275" daemon prio=5 tid=0x00007fa0f507e800 nid=0x10e03 waiting on condition [0x00000001a595a000]
      "TxCleanupService,{default}_{XXX}

      ,user-mac-54275" daemon prio=5 tid=0x00007fa0f507e000 nid=0x10d03 waiting on condition [0x00000001a5857000]
      "TxCleanupService,

      {default}

      _

      {XXX}

      ,user-mac-54275" daemon prio=5 tid=0x00007fa0f5817800 nid=0x10c03 waiting on condition [0x00000001a5754000]
      ...

      Looking at the source code for
      https://github.com/infinispan/infinispan/blob/master/core/src/main/java/org/infinispan/transaction/TransactionTable.java#L126

      if (!totalOrder) {
      // Periodically run a task to cleanup the transaction table from completed transactions.
      ThreadFactory tf = new ThreadFactory() {
      @Override
      public Thread newThread(Runnable r)

      { String address = rpcManager != null ? rpcManager.getTransport().getAddress().toString() : "local"; Thread th = new Thread(r, "TxCleanupService," + cacheName + "," + address); th.setDaemon(true); return th; }

      };

      executorService = Executors.newSingleThreadScheduledExecutor(tf);

      This code can benefit from drawing the threads from a dedicated pool which is bounded.

              pruivo@redhat.com Pedro Ruivo
              prash_jira Prasanth Pallamreddy (Inactive)
              Archiver:
              rhn-support-adongare Amol Dongare

                Created:
                Updated:
                Resolved:
                Archived: