Details

      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

        Gliffy Diagrams

          Attachments

            Activity

              People

              • Assignee:
                pruivo Pedro Ruivo
                Reporter:
                pruivo Pedro Ruivo
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: