Commands stored in transaction log records and in the inbound queue are ordered according to the sequence in which they were committed—although they are not necessarily grouped by transaction. It is the task of the Stable Queue Transaction (SQT) thread to reassemble transactions and place the transactions in commit order. Transactions must be in commit order for final application on the destination’s data servers and for materialization processing.
The SQT thread reassembles transactions as it reads commands from its stable inbound queue and keeps a linked list of transactions. For the outbound queue, the DSI/S thread schedules transactions, and performs the SQT function of assembling and ordering transactions. When it reads a commit record, the SQT makes that transaction available to the distributor (DIST) thread or to the DSI thread, depending on what process required the SQT ordering of the transaction.
When it reads a rollback record, the SQT thread tells the SQM thread to delete affected records from all stable queues. Operated by the DSI/S thread, the SQT library notifies the DSI when a transaction exceeds the large transaction threshold. See “Using parallel DSI threads” for more information on transaction thresholds.