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.