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

Transaction Code Optimizations

    XMLWordPrintable

Details

    • Enhancement
    • Resolution: Done
    • Major
    • 7.0.0.Alpha1
    • 6.0.1.Final
    • Transactions
    • None

    Description

      Currently, I found the following problems (so far, last update 18/01, 17h30, fix in progress):

      • the LocalTxInvocationContext is creating an empty map every time a new instance is created. It originates >10GB of data in 5min. It can use the Collections.emptyMap()
      • TransactionCoordinator is creating LocalTxInvocationContext twice when commit. First, prepare() method creates LocalTxInvocationContext and if it is read only, it invokes commitInternal (that will create a new LocalTxInvocationContext). The same for commit() method when the transaction is one phase. commitInternal() can reuse the LocalTxInvocationContext since they are stateless (and they already have a reference for the LocalTransaction).
      • Refactor LocalTxInvocationContext and RemoteTxInvocationContext

      Results (for 5 min profiling):

      • HashMap allocation reduced from 20.80GB to 3.76GB
      • LocalTxInvocationContext allocation reduced from 13.80GB to 7.44GB

      Attachments

        Activity

          People

            pruivo@redhat.com Pedro Ruivo
            pruivo@redhat.com Pedro Ruivo
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: