[infinispan-issues] [JBoss JIRA] (ISPN-3903) Transaction Code Optimizations

Pedro Ruivo (JIRA) issues at jboss.org
Mon Jan 20 07:12:28 EST 2014


     [ https://issues.jboss.org/browse/ISPN-3903?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Pedro Ruivo updated ISPN-3903:
------------------------------

    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

  was:
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).


    
> Transaction Code Optimizations
> ------------------------------
>
>                 Key: ISPN-3903
>                 URL: https://issues.jboss.org/browse/ISPN-3903
>             Project: Infinispan
>          Issue Type: Enhancement
>          Components: Transactions
>    Affects Versions: 6.0.1.Final
>            Reporter: Pedro Ruivo
>            Assignee: Pedro Ruivo
>             Fix For: 7.0.0.Alpha1
>
>
> 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

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the infinispan-issues mailing list