Global Transaction Resiliency

DML read-write transactions on multiplex writer nodes survive temporary communication failures between coordinator and writer nodes and temporary failure of the coordinator due to server failure, shutdown or failover.

When a user connects to a writer node and executes read-write DML commands against shared objects, the writer starts a global transaction on the coordinator. The transaction starts on an internal internode communication (INC) connection from writer to coordinator.

For example, INSERT or LOAD commands on shared database objects are global transactions. If a failure occurs, the global transaction and corresponding INC connection is suspended.

If the temporary failure resolves within a user-defined timeout period, the global transaction continues as if there was no failure. The user can commit, roll back, or continue the transaction. Use the MPX_LIVENESS_TIMEOUT option to set the timeout period, which defaults to an hour (default value 3600).

If the failure persists longer than the user-defined timeout period, the global transaction cannot resume and the user must roll back the whole transaction.

If there is a DML command actively executing while the failure happens, the command behavior depends on the user-defined timeout and the command type.

To check connection status (active or suspended), use the sp_iqconnection system procedure on a writer node or sp_iqmpxsuspendedconninfo system procedure on a coordinator. Run sp_iqmpxincstatistics for a snapshot of the aggregate statistics of the INC status since server startup.

This feature does not affect transactions initiated on the coordinator.

Related concepts
Troubleshoot Transactions
Related tasks
Dropping Multiplex Servers
Related reference
ALTER LS POLICY Statement
DROP MULTIPLEX SERVER Statement
MPX_LIVENESS_TIMEOUT Option
sp_iqconnection Procedure
sp_iqmpxincstatistics Procedure
sp_iqmpxsuspendedconninfo Procedure