Patent ID: 7240054

Claim:
A method for preserving data constraints during parallel application of asynchronous replication transactions in a database system, the method comprising: (a) receiving and examining a transaction message comprising one or more row changes; (b) determining whether at least one row change in the transaction message is affected by a data constraint; (c) responsive to at least one row change in the transaction message being affected by a data constraint, determining whether there is a constraint violation between the at least one row change in the transaction message and a row change in at least one preceding non-completed transaction message; (d) responsive to there being a constraint violation between the at least one row change in the transaction message and the row change in the at least one preceding non-completed transaction message, holding the transaction message until application of the at least one preceding non-completed transaction message is completed; (e) responsive to application of the at least one preceding non-completed transaction message being completed, placing the transaction message on a work queue; and (f) subsequent to placing the transaction message on the work queue, applying the transaction message in parallel with one or more other transaction messages on the work queue.