Global Transaction Resiliency

DML read-write transactions on multiplex writer nodes now survive temporary communication failures between coordinator and writer nodes and temporary failure of the coordinator due to server failure, shutdown or failover. Prior to SAP Sybase IQ 16.0 such failures guaranteed failure of the global transaction on the writer node and required the user to roll back the entire transaction.

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.

See these new and updated topics in the SAP Sybase IQ 16.0 documentation:

This feature does not affect transactions initiated on the coordinator.