Techniques for performing data redundancy operations in a fault-tolerant
manner. In one aspect, a primary data storage facility stores a primary
copy of data and a secondary facility stores data that is redundant of
the primary copy of the data. The primary facility includes a first
redundancy appliance that receives a sequence of write requests and
stores data for the sequence of write requests in storage associated with
the primary storage facility. A second redundancy appliance shadows the
first redundancy appliance and assumes the role of the first redundancy
appliance in the event of a fault at the first redundancy appliance. In
this way, fault tolerance is increased by the presence of the second,
shadow appliance.