1

I am getting the following error when I try to commit a really big transaction

 System.TimeoutException: Timed out waiting for replication; id=a633f605-ef3a-480c-b80e-83a5be3bd610@132477999374053794@urn:WorkElements/dataStore@132471608259433275, timeout=4000ms, txn=132502740949510949 ---> System.Fabric.FabricTransientException: Throttling transaction writes due to slow disk throughput. Message: Higher incoming load than the disk throughput at Microsoft.ServiceFabric.Replicator.Transaction.ThrowReplicationException(Exception e, Boolean abortNeeded) at Microsoft.ServiceFabric.Replicator.Transaction.PrivateAddOperation(OperationData metaData, OperationData undo, OperationData redo, Object operationContext, Int64 stateProviderId) at Microsoft.ServiceFabric.Replicator.Transaction.

Is there any way to increase this timeout beyond 4 seconds?

Josh
  • 1,648
  • 8
  • 27
  • 58

1 Answers1

0

There's a timeout argument you can pass to reliable collection methods.

timeout TimeSpan - The amount of time to wait for the operation to complete before throwing a TimeoutException. Primarily used to prevent deadlocks. The default is 4 seconds.

See these docs for more info.

LoekD
  • 11,402
  • 17
  • 27
  • Wouldn't replication timeouts happen on committing of the transaction? That method takes no timeout parameter. And is there nowhere or way I can override it globally? I have thousands of potential places to set if it needs to happen per method. – Josh Nov 20 '20 at 14:10