A method for data mirroring including receiving a sequence of transactions
at a first storage node from a host indicating data to be stored by the
node, storing the data therein, and delineating a first batch of the
transactions. The node returns to the host an acknowledgment of having
stored the data, delineates a second batch of the transactions received
subsequent to the acknowledgment, and conveys the data to a second
storage node. The first node also conveys to the second node a first
record of the transactions in the first batch and a second record of the
transactions in the second batch, and the data are stored in the second
node responsively to the first and second records, so that all data
indicated by the transactions in the first batch are stored by the second
node prior to storing data indicated by the transactions in the second
batch.