Patent ID: 7904678

Claim:
A method comprising: in response to a request to write data to a mirrored volume, a computer system generating first and second write transactions, wherein the first write transaction comprises a first tag, and the second write transaction comprises a second tag; transmitting the first and second write transactions to first and second storage devices, respectively; wherein the first write transaction further comprises data D to be written; wherein the second write transaction further comprises data D to be written; storing first write information in an entry of a first tag table, wherein the first write information comprises the first tag and an identity of a logical block of a first mirror where data D is to be written, wherein the first tag table is stored in first memory; storing second write information in an entry of a second tag table, wherein the second write information comprises the second tag and an identity of a logical block of a second mirror where data D is to be written, wherein the second tag table is stored in second memory; synchronizing the first and second mirrors after storing the first write information in the entry of the first tag table and after storing the second write information in the entry of the second tag table; generating a first token after the first information is stored in the entry of the first tag table, wherein the first token identifies the entry of the first tag table; generating a second token after the second information is stored in the second tag table, wherein the second token identifies the entry of the second tag table; transmitting the first and second tokens to the computer system; in response to a second request to write data to the mirrored volume, the computer system generating third and fourth write transactions, wherein the third write transaction comprises a third tag and the first token, and the fourth write transaction comprises a fourth tag and the second token; transmitting the third and fourth write transactions to first and second storage devices, respectively; deleting the entry of the first tag table in response to the first storage device receiving the first token; deleting the entry of the second tag table in response to the second storage device receiving the second token.