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

Too many threads for cleaning up infinispan transactions

    XMLWordPrintable

Details

    Description

      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.

      Attachments

        Issue Links

          Activity

            People

              pruivo@redhat.com Pedro Ruivo
              prash_jira Prasanth Pallamreddy (Inactive)
              Votes:
              9 Vote for this issue
              Watchers:
              9 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: