Patent ID: 8024525

Claim:
A method for reducing bandwidth requirements in a storage system including backing storage and which is used by a client computer system, comprising: providing a storage control unit connected to the client computer system and the backing storage, and the storage control unit being configured to receive write requests to transfer WRITE DATA received from the client computer to the backing storage using block level addressing protocol; providing a journal memory storage device logically and/or physically external to the storage control unit; providing data structures within a memory of the storage control unit configuring the storage control unit to determine a next journal address and space available in the journal memory storage device for a journal entry and WRITE DATA to be written; receiving in the storage control unit, from the client computer system, a write request to the storage control unit to store WRITE DATA, and in response thereto operating the storage control unit to perform the following journaling and data operations: storing WRITE DATA into a control unit cache memory contained in the storage control unit; creating, for storing in a journal entry in a journal log in the journal memory storage device, a journal entry meta-data identifying at least a LUN, address, and length for the WRITE DATA, said journal log being associated with the storage control unit; identifying, in the journal entry meta-data, position information detailing WRITE DATA attributes and arrival information of the Write Request for the WRITE DATA; storing header information in the journal memory storage device within a header descriptor of the journal log, the header information storing an “oldest written” and a “most recent written” cache entry of the WRITE DATA stored in the storage control unit cache memory, a first available address for entry of the journal entry meta-data and the WRITE DATA in the journal log, space available in the journal, and a time of last write to the backing storage; writing the journal entry including the WRITE DATA and the meta-data to a selected device location and block address of the journal memory storage device; upon completion of the writing the journal entry, returning an ending status to the client computer system without having written the WRITE DATA to a cache memory in another control unit and without another control unit having processed the WRITE DATA to form a cache entry; performing a data flush which writes the WRITE DATA from the write request of the client computer system stored in the storage control unit cache memory to the backing storage; and upon completion of said performing a data flush, updating status fields of the header information reflecting the data flush status to allow eventual re-use of an oldest journal entry location.