Patent attributes
A data processing system is distributed across a plurality of locations coupled together by a wide-area communications network and includes physical storage devices and a set of host computers distributed across the locations. Each host executes both a local initiator application and a local caching storage controller (CSC) application. The CSC applications (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 underlying physical storage devices, (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 the requested data from the local CSC application's cache, from a remote CSC application's cache, or from 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 the locations/addresses associated with the write command, and either store the user data associated with the write in one or more local or remote CSC application's caches or write the user data to one or more local or remote physical storage devices.