A high-speed cache is shared by a plurality of independently-operating data systems in a multi-system data sharing complex. Each data system has access both to the high-speed cache and the lower-speed, secondary storage for obtaining and storing data. Management logic and the high-speed cache assures that a block of data obtained form the cache for entry into the secondary storage will be consistent with the version of the block of data in the shared cache.
One embodiment of the present invention provides a system for processing a request directed to a secondary storage system. The system operates by receiving the request at an interface of the secondary storage system. This request specifies an operation to be performed on the secondary storage system, a location within the secondary storage system to which the request is directed, and an address of a target buffer located outside of the secondary storage system for holding data involved in the request. Next, the system processes the request by transferring data between the location within the secondary storage system and the target buffer located outside of the secondary storage system. If the target buffer is located within a page cache, processing the request involves communicating with the target buffer located within the page cache. If the target buffer is located within a user space of an application, processing the request involves communicating with the target buffer located within the user space without passing through the page cache.
A method and means using a fast write in order to eliminate DASD time from the write response time as seen by the host; eliminate some DASD writes due to overwrites caused by later host writes to previously updated blocks in cache; and reduce DASD seeks because destages will be postponed until many destages can be done to a track or cylinder. This is effectuated by destaging from the cache only the least recently referenced original or updated block and all other original or updated blocks occupying the same logical track and ordered in a predefined lower LRU range, the destage being initiated responsive to a cache miss. The destaging step is selectable from a set of destaging steps varying in their robustness.
Changed data of castout classes of a coupling facility cache are managed in order to be able to efficiently determine the age of the oldest changed data in the cache. A directory entry representing a changed datum is placed in a data structure corresponding to the castout class of the changed datum. The data structure includes an order queue ordered by timestamps and a process queue, having an ordered portion and an unordered portion. When the directory entry is to be added to the data structure, an attempt is first made to place the entry on the order queue. If the entry is not placed on the order queue within a predefined amount of time, then the entry is placed on the process queue, the order of which is maintained by background tasks. In order to return the oldest entry of the data structure, the smallest entry of the process queue is determined and that entry is then compared to the smallest entry of the order queue. The smaller of those two entries corresponds to the oldest entry for the castout class.
In a disk array control apparatus having a plurality of magnetic disk apparatus under its command for controlling data transfers to and from a host computer in a multiprocessor configuration comprising a plurality of microprocessors, a data path is provided between a cache unit and a shared memory unit, provided independent of the cache unit, for storing configurational information and the like required for system operation and control by the microprocessors, so that in the event of trouble with the apparatus or a sudden abnormality in main power supply, configurational information in a volatile shared memory unit is saved into non-volatile magnetic disk apparatuses from the data path via the cache unit by utilizing an uninterrupted power supply apparatus (UPS).
In fault-tolerant systems it is known to write data into two separate disk drives. It is also known to duplex computers so that when one computer fails, the other computer can continue operating. In such a system, the active unit usually controls both disk drives. It is also known to cache in the main memory of the computer the most recently used areas in the disk drive, since it is likely that these areas (e.g. directories) must be read again soon. A problem occurs when using duplexed computers each of which is to be provided with a possibility of using the disk drive (14, 24) while the operation is expedited by caching in the main memories of the computers (10, 20). If one computer modifies the data in the disk drive, the other computer is not necessarily aware of this, but it uses the outdated data in its memory. According to the invention, the computer (10) desiring to control the disk drive (14) reserves it for itself. If the reservation is successful, a disk talk is performed. If the data in the disk drive (14) is changed, the other computer (20) is informed of this change and it erases from its memory the cached data corresponding to the changed data.