Patent ID: 8074003

Claim:
A host computer for use in a data processing system distributed across a plurality of locations coupled together by a wide-area communications network, the data processing system including a set of physical storage devices and a set of host computers distributed across the locations, the host computer being one of the set of host computers and comprising: processing circuitry including a processor, memory, storage and interface circuitry coupled together by interconnection circuitry; and a local initiator application and a local caching storage controller (CSC) application stored and executed by the processing circuitry, the local initiator application being one of a set of initiator applications distributed across the host computers, the local CSC application being co-operative with other CSC applications distributed across the host computers to: (1) define a set of block devices presented to the initiator applications for block-oriented data storage operations, the block devices being virtual devices utilizing the set of physical storage devices for underlying physical data storage, (2) engage in a distributed cache coherence protocol to present the block devices consistently to the initiator applications, (3) in response to a local block storage read command from an initiator application, retrieve user data from either a cache of the CSC application, a cache of a remote CSC application, or a physical storage device, and (4) in response to a local block storage write command from an initiator application, invalidate all currently cached user data for locations/addresses associated with the write command, and either store the user data associated with the write in a cache of one or more local or remote CSC applications or write the user data to one or more local or remote physical storage devices.