You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@servicecomb.apache.org by "FuChenGeng (JIRA)" <ji...@apache.org> on 2018/08/09 16:02:00 UTC

[jira] [Created] (SCB-829) An index on TxEvent (globalTxId) should be added

FuChenGeng created SCB-829:
------------------------------

             Summary: An index on TxEvent (globalTxId) should be added
                 Key: SCB-829
                 URL: https://issues.apache.org/jira/browse/SCB-829
             Project: Apache ServiceComb
          Issue Type: Improvement
          Components: Saga
    Affects Versions: saga-0.3.0
         Environment: postgres and mysql
            Reporter: FuChenGeng
             Fix For: saga-0.3.0


When the amount of data in the TxEvent table is large, the select SQL statement of method(

findByEventGlobalTxIdAndEventType

)  is executed very slowly. Here, an index on globalTxId should be added.

 

Here is the SQL statement. it will be executed 3 times in a transaction with 2 subtransactions.

@Query("SELECT DISTINCT new org.apache.servicecomb.saga.alpha.core.TxEvent("
 + "t.serviceName, t.instanceId, t.globalTxId, t.localTxId, t.parentTxId, "
 + "t.type, t.compensationMethod, t.payloads "
 + ") FROM TxEvent t "
 + "WHERE t.globalTxId = ?1 AND t.type = ?2 "
 + " AND ( SELECT MIN(t1.retries) FROM TxEvent t1 "
 + " WHERE t1.globalTxId = t.globalTxId "
 + " AND t1.localTxId = t.localTxId "
 + " AND t1.type IN ('TxStartedEvent', 'SagaStartedEvent') ) = 0 ")

 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)