@@ -312,26 +312,32 @@ void MtmReleaseLocks(void)
312312 */
313313void MtmLock (LWLockMode mode )
314314{
315- timestamp_t start ,stop ;
316315if (!MtmAtExitHookRegistered ) {
317316atexit (MtmReleaseLocks );
318317MtmAtExitHookRegistered = true;
319318}
320319if (MtmLockCount != 0 ) {
321320Assert (Mtm -> lastLockHolder == MyProcPid );
322321MtmLockCount += 1 ;
323- return ;
324322}
325- start = MtmGetSystemTime ();
326- LWLockAcquire ((LWLockId )& Mtm -> locks [MTM_STATE_LOCK_ID ],mode );
327- stop = MtmGetSystemTime ();
328- if (stop > start + MSEC_TO_USEC (MtmHeartbeatSendTimeout )) {
329- MTM_LOG1 ("%d: obtaining %s lock takes %lld microseconds" ,MyProcPid , (mode == LW_EXCLUSIVE ?"exclusive" :"shared" ),stop - start );
330- }
331- if (mode == LW_EXCLUSIVE ) {
332- Assert (MtmLockCount == 0 );
333- Mtm -> lastLockHolder = MyProcPid ;
334- MtmLockCount = 1 ;
323+ else
324+ {
325+ #if DEBUG_LEVEL > 1
326+ timestamp_t start ,stop ;
327+ start = MtmGetSystemTime ();
328+ #endif
329+ LWLockAcquire ((LWLockId )& Mtm -> locks [MTM_STATE_LOCK_ID ],mode );
330+ #if DEBUG_LEVEL > 1
331+ stop = MtmGetSystemTime ();
332+ if (stop > start + MSEC_TO_USEC (MtmHeartbeatSendTimeout )) {
333+ MTM_LOG1 ("%d: obtaining %s lock takes %lld microseconds" ,MyProcPid , (mode == LW_EXCLUSIVE ?"exclusive" :"shared" ),stop - start );
334+ }
335+ #endif
336+ if (mode == LW_EXCLUSIVE ) {
337+ Assert (MtmLockCount == 0 );
338+ Mtm -> lastLockHolder = MyProcPid ;
339+ MtmLockCount = 1 ;
340+ }
335341}
336342}
337343
@@ -527,9 +533,12 @@ bool MtmXidInMVCCSnapshot(TransactionId xid, Snapshot snapshot)
527533static timestamp_t totalSleepTime ;
528534static timestamp_t maxSleepTime ;
529535#endif
530- timestamp_t start = MtmGetSystemTime ();
531536timestamp_t delay = MIN_WAIT_TIMEOUT ;
532537int i ;
538+ #if DEBUG_LEVEL > 1
539+ timestamp_t start = MtmGetSystemTime ();
540+ #endif
541+
533542Assert (xid != InvalidTransactionId );
534543
535544if (!MtmUseDtm ) {
@@ -551,9 +560,11 @@ bool MtmXidInMVCCSnapshot(TransactionId xid, Snapshot snapshot)
551560if (ts -> csn > MtmTx .snapshot ) {
552561MTM_LOG4 ("%d: tuple with xid=%lld(csn=%lld) is invisible in snapshot %lld" ,
553562MyProcPid , (long64 )xid ,ts -> csn ,MtmTx .snapshot );
563+ #if DEBUG_LEVEL > 1
554564if (MtmGetSystemTime ()- start > USECS_PER_SEC ) {
555565MTM_ELOG (WARNING ,"Backend %d waits for transaction %s (%llu) status %lld usecs" ,MyProcPid ,ts -> gid , (long64 )xid ,MtmGetSystemTime ()- start );
556566}
567+ #endif
557568MtmUnlock ();
558569return true;
559570 }
@@ -593,10 +604,12 @@ bool MtmXidInMVCCSnapshot(TransactionId xid, Snapshot snapshot)
593604MTM_LOG4 ("%d: tuple with xid=%lld(csn= %lld) is %s in snapshot %lld" ,
594605MyProcPid , (long64 )xid ,ts -> csn ,invisible ?"rollbacked" :"committed" ,MtmTx .snapshot );
595606MtmUnlock ();
607+ #if DEBUG_LEVEL > 1
596608if (MtmGetSystemTime ()- start > USECS_PER_SEC ) {
597609MTM_ELOG (WARNING ,"Backend %d waits for %s transaction %s (%llu) %lld usecs" ,MyProcPid ,invisible ?"rollbacked" :"committed" ,
598610ts -> gid , (long64 )xid ,MtmGetSystemTime ()- start );
599611}
612+ #endif
600613return invisible ;
601614 }
602615 }
@@ -608,7 +621,11 @@ bool MtmXidInMVCCSnapshot(TransactionId xid, Snapshot snapshot)
608621 }
609622 }
610623MtmUnlock ();
624+ #if DEBUG_LEVEL > 1
611625MTM_ELOG (ERROR ,"Failed to get status of XID %llu in %lld usec" , (long64 )xid ,MtmGetSystemTime ()- start );
626+ #else
627+ MTM_ELOG (ERROR ,"Failed to get status of XID %llu" , (long64 )xid );
628+ #endif
612629return true;
613630}
614631
@@ -3815,6 +3832,7 @@ bool MtmFilterTransaction(char* record, int size)
38153832switch (event )
38163833 {
38173834case PGLOGICAL_PREPARE :
3835+ return false;
38183836case PGLOGICAL_PRECOMMIT_PREPARED :
38193837case PGLOGICAL_ABORT_PREPARED :
38203838gid = pq_getmsgstring (& s );