Patent ID: 7836215

Claim:
A method comprising: receiving communications at a filter layer; transmitting the communications to an up-to-date storage device; transmitting the communications to a copy storage device which maintains a copy of the up-to-date storage device, where in a first mode, a first storage device is used as the up-to-date storage device and a second storage device is used as the copy storage device, where the second storage device operates at a higher speed than the first storage device; and in response to the higher speed second storage device being synchronized with the first storage device, entering a second mode where the second storage device is used as the up-to-date storage device and the first storage device is used as the copy storage device, where the first storage device is an internal hard drive in a laptop computer and the second storage device is a docking station hard drive; while in the first mode, transmitting write operations to the copy storage device, where transmitting the write operations comprises recording an indication of the write operations, the indication comprising a record of dirty regions in the up-to-date storage device and, in response to the second storage device becoming accessible, transmitting the recorded indications to the copy storage device; while in the second mode, in response to determining that the second storage device is not accessible, processing any pending write operations in the first storage device and, in response to all pending write operations being completed, entering the first mode; in response to receiving a predetermined signal, completing an asynchronous update of the copy storage device, where the method is performed transparently to an operating system executed by the laptop computer; sending an input/output (I/O) operation to be executed by the internal hard drive and the docking station hard drive; sending a signal to the operating system that the I/O operation is complete when the I/O operation is completed by the docking station hard drive before the I/O operation is completed by the internal hard drive, wherein the operating system continues to operate based on completion of the I/O operation by the docking station hard drive while the I/O operation is still pending for the internal hard drive; maintaining an I/O record in the filter layer of all I/O operations that remain to be performed by the internal hard drive; queuing pending I/O operations of the internal hard drive in a buffer, wherein when the I/O operations in the buffer exceed a threshold, increasing a buffer size; and receiving a request to undock the laptop computer and executing, on the internal hard drive, the I/O operations in the I/O record in the filter layer.