Help get this topic noticed by sharing it on Twitter, Facebook, or email.

Deadlock on DBAmp_Log running parallel replicates

Hi,

We are running multiple Replicate procedures in parallel, as we have a powerful SQL server and Salesforce objects with tens of millions of records to replicate each night. Occasionally, we get a deadlock error on what seems to be reading from the DBAmp_Log view (see details below).

The parallel sessions are replicating different objects, so there should never be contention for the same row. Is there a way that the query could use the NOLOCK hint? Or might this be fixed in a newer release? We are running version 3.4.7 or 3.4.8.

DETAILS
=======

Victim:

exec SF_ReplicateIAD 'SALESFORCE','Progress_Tracking__c', 'pkchunk,batchsize(250000)';

ALTER TABLE [Progress_Tracking__c] REBUILD PARTITION = ALL WITH (DATA_COMPRESSION = PAGE);

select CopiedRowCount as row_count from DBAmp_Log_RowCount_LastReplicate_V where TableName = 'Progress_Tracking__c'

Winner:

exec SF_ReplicateIAD 'SALESFORCE','Contact', 'pkchunk,batchsize(250000)';

ALTER TABLE [Contact] REBUILD PARTITION = ALL WITH (DATA_COMPRESSION = PAGE);

select CopiedRowCount as row_count from DBAmp_Log_RowCount_LastReplicate_V where TableName = 'Contact'

Thanks!
Tom
1 person has
this problem
+1
Reply