A
system and method for performing real-time replication of data across a network is provided. A mirroring engine receives a write request from a host application operating on a source computer. The mirroring engine compares data in the write request with corresponding data stored in memory. If data in the write request differs from stored data, the mirroring engine processes the write request.
Processing involves computing a data signature across data in the write request and associating the signature with a transaction number and a status
byte. The transaction number is used to uniquely identify the data signature and can be used to ensure that the signature is properly handled if it is received, for example, out of order. The status
byte contains information used for handling the data signature and transaction number as well as information identifying how the data signature was computed. In an embodiment, the status
byte may contain a bit for identifying if the data signature was computed across an entire block of data or if the signature was computed over only a portion of a data block, such as for example, only data bytes that have changed as compared with those in the stored data.
Processing may further include compressing and encrypting the data signature, transaction number and status byte prior to transmission over a network. Embodiments may further employ a meta-file for storing data signatures, transaction numbers, status bytes, and other information useful for performing real-
time data replication over a network.