|
Claims  |
|
|
Having thus described our invention, what we claim as new and desire to
secure by Letters Patent is:
1. A method of controlling data transfer from shared storage to I/O devices
in a computer complex, comprising the steps of:
structuring a sysplex to include a plurality of central processor complexes
(CPCs), in which the CPCs use I/O control software for controlling sysplex
direct access storage devices (sysplex DASDs) connected using first data
paths to the CPCs for storing data items permanently in the sysplex, and a
shared electronic storage (SES) connected using second data paths to the
CPCs, wherein said first data paths are separate and distinct from said
second data paths, in which the CPCs use SES control software for
controlling SES over said second data path,
designating by said SES control software castout classes for SES cache
directory entries to associate the castout classes with changed data items
represented by the directory entries for enabling transfer to DASD in a
single I/O operation of a plurality of data items selected from a castout
class.
2. A method of controlling data transfer from shared storage to I/O devices
in a computer complex as defined in claim 1, comprising the step of:
associating, using said I/O control software for controlling sysplex DASDs,
castout classes designated for SES cache directory entries with
identifications of sysplex DASD for locating a DASD for receiving a
potential castout of data items associated with a respective castout
class.
3. A method of controlling data transfer from shared storage to I/O devices
in a computer complex as defined in claim 1, comprising the steps of:
associating a castout lock representation with each SES cache directory
entry for a data item stored in a SES cache data area, and
setting the castout lock representation to a castout or non-castout state,
in which the non-castout state has a predetermined value, and the castout
state has a different value identifying a castout process used for
transferring the associated data item to DASD.
4. A method of controlling data transfer from shared storage to I/O devices
in a computer complex as defined in claim 3, the method further comprising
the step of:
setting an indicating means for any valid SES cache directory entry to
indicate a version of an associated data item stored in SES has been
changed during a castout of the data item to DASD and the SES data item is
not to be deleted from SES as long as the SES version is different from a
version of the same data item stored in a sysplex DASD.
5. A method of controlling data transfer from shared storage to I/O devices
in a computer complex as defined in claim 4, while the castout lock
representation has the predetermined value indicating no castout state
exists, the method further comprising the step of:
providing a change flag field in each directory entry in which the change
flag field indicates whether or not an associated data item is stored in
the SES cache with a version different from a version of the same data
item stored in a sysplex DASD.
6. A method of controlling data transfer from shared storage to I/O devices
in a computer complex as defined in claim 5, comprising the step of:
inhibiting reclaiming of a SES cache directory entry in a castout class
when the change flag field indicates a different version is stored in the
SES cache.
7. A method of controlling data transfer from shared storage to I/O devices
in a computer complex as defined in claim 3, comprising the step of:
inhibiting reclaiming of a SES cache directory entry in a castout class
when the castout lock representation indicates a castout state exists for
the entry.
8. A method of controlling data transfer from shared storage to I/O devices
in a computer complex as defined in claim 3, while the castout lock
representation indicates a castout state exists and the change flag field
indicates a changed state, the method further comprising the step of:
setting the change flag field to its non-changed state when the castout
lock representation is set to provide a combinatorial indication
(combining the indications for the change flag field and castout lock
representation) indicating that a changed state exists for the version of
the data item in the SES cache in relation to a DASD version of the same
data item.
9. A method of controlling data transfer from shared storage to I/O devices
in a computer complex as defined in claim 1, comprising the steps using
said SES control software of:
counting entries in each castout class, and
initiating a castout process for a castout class when the number of SES
cache directory entries counted for the castout class has reached a
predetermined threshold number.
10. A method of controlling data transfer from shared storage to I/O
devices in a computer complex as defined in claim 9, comprising the step
of:
providing a counter means for each castout class which is incremented by
each CPC write command specifying a castout class and writing a new data
item in the castout class in SES, for which the counter means provides a
measurement of the number of SES data items currently existing in each
castout class.
11. A method of controlling data transfer from shared storage to I/O
devices in a computer complex as defined in claim 10, comprising the steps
of:
signalling by a timer program of the expiration of each time interval used
for indicating the number of changed data items in each castout class
currently measured by each castout-class counter means in a SES cache,
performing a measurement operation for measuring the number of changed data
items currently existing in each castout class in a SES cache in response
to a signal by the signalling step, and
initiating a castout process for any castout class which has the changed
number of SES cache directory entries indicated by the measurement
operation as equal to or exceeding a predetermined threshold number for
the castout class.
12. A method of controlling data transfer from shared storage to I/O
devices in a computer complex as defined in claim 10, comprising the steps
of:
issuing of a write command by a CPC to a SES cache specifying a castout
class for a data item, and
responding to the CPC command by SES sending a count of the number of data
items stored in the specified castout class in the SES cache and the total
number of data items in all castout classes in the SES cache.
13. A method of controlling data transfer from shared storage to I/O
devices in a computer complex as defined in claim 1, comprising the steps
of:
transmitting by a CPC to a SES cache of a command containing a name, a data
item, a changed state indication, and a castout class for the data item,
accessing a directory entry in the SES cache having the name of the data
item, and
setting in the directory entry a change flag field to the changed state
indication for the data item, and setting a castout class field to the
castout class for the data item being stored in SES regardless of whether
a castout class was previously designated in the entry as changed or
non-changed for the data item.
14. A method of controlling data transfer from shared storage to I/O
devices in a computer complex as defined in claim 13, comprising the steps
of:
transmitting a read-castout-class command from a CPC to a SES cache
specifying a castout class,
accessing in SES of the queue for the castout class, and
finding a data item having a representation in the castout class.
15. A method of controlling data transfer from shared storage to I/O
devices in a computer complex as defined in claim 14, comprising the steps
of:
transmitting with the command of a name and a name mask to represent a set
of related names potentially in the directory,
finding one or more names in a set defined by the mask applied to the name
in a specified castout class, and
sending by SES to the CPC issuing the command of a list containing the set
of names obtained by the finding step to inform the CPC of specific names
in the castout class.
16. A method of controlling data transfer from shared storage to I/O
devices in a computer complex as defined in claim 15, comprising the step
of:
ordering the names found by the finding step in a recency of write-access
sequence, and the sending step sending to the CPC the list of names in the
recency of write-access sequence.
17. A method of controlling data transfer from shared storage to I/O
devices in a computer complex as defined in claim 15, comprising the step
of:
also sending by SES to the CPC of a count of the number of data items
currently in the list being sent.
18. A method of controlling data transfer from shared storage to I/O
devices in a computer complex as defined in claim 1, comprising the steps
of:
transmitting a read-castout-class-information command from a CPC to a SES
cache for requesting values in a set of counters accumulated in SES for
respective predefined events occurring in relation to castout classes to
enable the CPC to control a castout operation, and
responding by SES to the command by sending to the CPC of current values in
the counters requested by the command.
19. A method of controlling data transfer from shared storage to I/O
devices in a computer complex as defined in claim 1, comprising the steps
of:
transmitting a read-directory command from a CPC to a SES cache for
requesting information on one or more named data items,
scanning the entries in the SES cache directory for entries indicating a
changed data item in SES (changed entries) for generating a name list or a
list of directory-entry-information-blocks without being affected by
changes to directory entries during the scanning step, and
responding to the command by SES sending to the CPC the name list or the
list of directory-entry-information-blocks.
20. A method of controlling data transfer from shared storage to I/O
devices in a computer complex as defined in claim 19, the responding step
further comprising:
specifying a name and name mask in a read-directory command to define a set
of related names for the scanning step to find entries in the directory
for generating the name list or the list of
directory-entry-information-blocks.
21. A method of controlling data transfer from shared storage to I/O
devices in a computer complex as defined in claim 19, the responding step
further comprising:
providing in each directory-entry-information-block for an associated data
item of: the name, change state, castout class, and castout lock state
found in the directory entry for the data item.
22. A method of controlling data transfer from shared storage to I/O
devices in a computer complex as defined in claim 1, further comprising
the steps of:
transmitting by a CPC to a SES cache of a read-for-castout command
containing a name of a data item being requested for castout,
testing in a directory entry in the SES cache for the name in the command,
for a non-locked state in a castout lock field, and for a changed state
indication for an associated data item, and
setting in the directory entry (when the conditions stated for the testing
step are found) of the castout lock field to identify a castout process,
the change field to indicate a non-changed state for the data item, and
transmitting the data item to the CPC for the LCB.
23. A method of controlling data transfer from shared storage to I/O
devices in a computer complex as defined in claim 22, further comprising
the step of:
responding with a copy of the castout lock field and without transmitting
the associated data item to the CPC when the castout lock field indicates
a locked state.
24. A method of controlling data transfer from shared storage to I/O
devices in a computer complex as defined in claim 23, further comprising
the steps of:
transmitting by a CPC to a SES cache of a unlock-castout-locks command
containing a list of one or more names of data items being requested for
unlocking,
comparing an identifier of the CPC sending the command with a CPC
identifier in a castout lock field for each directory entry found for a
name in the list, and
accepting the command by resetting the castout lock field to a
predetermined value indicating an unlocked state if the comparing step
finds equality, but rejecting the command without changing the castout
lock field if the comparing step finds inequality.
25. A method of controlling data transfer from shared storage to I/O
devices in a computer complex as defined in claim 24, further comprising
the step of:
forcing a change field in a directory entry to indicate a changed state for
an associated data item if a requested castout operation for the data item
is unsuccessful.
26. A method of controlling data transfer to I/O in a computer complex as
defined in claim 24, further comprising the step of:
responding with a list locator representation when a rejection of a command
occurs for a name in the list to enable the CPC to recognize it need not
castout the data item, or to later again request a castout of the data
item.
27. A method of controlling data transfer from shared storage to I/O
devices in a computer complex as defined in claim 22, further comprising
the step of:
registering an LC identifier (when registration is selected by the program)
to indicate the local cache buffer used to store the data while in transit
to DASD, to affect a read and register operation to the local cache and a
castout operation in a single data transfer from SES to the CPC.
28. A method of controlling data transfer from shared storage to I/O
devices in a computer complex as defined in claim 22, further comprising
the steps of:
suppressing registration of an LCB identifier (when suppression of
registration is selected by the program) to allow the castout operations
to bypass the local-cache buffers.
29. A method of controlling data transfer to I/O in a computer complex as
defined in claim 1, further comprising the steps of:
transmitting by a CPC to a SES cache of a command containing a name for
finding any SES directory entry having the same name associated with a
data item stored in the SES cache, and
putting a representation of the directory entry at an end of a castout
queue for the castout class designated for the associated data item, the
representation being put at a most recently changed (MRC) end of the queue
to have the queue order its representations in recency order of data items
changed in the castout class, with the least recently changed (LRC) data
item in the castout class being indicated at the opposite end of the
queue.
30. A method of controlling data transfer to I/O in a computer complex as
defined in claim 29, further comprising the step of:
providing a write command as the command referencing a directory entry
having a representation in the castout class.
31. A method of controlling data transfer to I/O in a computer complex as
defined in claim 30, further comprising the step of:
providing a write and register command or a write when registered command
referencing a directory entry having a representation in the castout
class.
32. A method of controlling data transfer to I/O in a computer complex as
defined in claim 30, further comprising the steps of:
rejecting the write command if the command represents a no-change state for
a transmitted data item and a directory entry is found for the name of the
data item in the command which indicates a changed state, and
responding to the CPC issuing the command with a rejection signal
indicating the command is incompatible with the change state in the
directory entry.
33. A method of controlling data transfer from shared storage to I/O
devices in a computer complex, comprising the steps of:
structuring a sysplex to include a plurality of central processor complexes
(CPCs), in which the CPCs use I/O control software for controlling sysplex
direct access devices (sysplex DASDs) connected to the CPCs for storing
data items permanently in the sysplex, and a shared electronic storage
(SES), in which the CPCs use SES control software for controlling the SES,
designating by said SES control software castout classes for SES cache
directory entries to associate the castout classes with changed data items
represented by the directory entries for enabling transfer to DASD in a
single I/O operation of a plurality of data items selected from a castout
class,
associating a user-data field with each SES cache directory entry in which
to indicate the time of initially writing an associated data item in the
SES cache, and
writing a time in the user-data field when a change flag field is set in
the directory entry to indicate that the associated data item is different
from a copy of the same data item in the sysplex DASD.
34. A method of controlling data transfer from shared storage to I/O
devices in a computer complex as defined in claim 33, the writing step
further comprising:
using the user-data field to control backup by indicating a time from which
backup is needed in case of failure of the SES cache.
35. A method of controlling data transfer from shared storage to I/O
devices in a computer complex as defined in claim 33, the detecting step
further comprising:
retrieving by a CPC of the time of change of a data item in a user-data
field of a SES directory entry to reduce recovery time for a SES cache
after failure of the SES cache. |
|
|
|
|
Claims  |
|
|
Description  |
|
|
CROSS REFERENCE TO RELATED APPLICATIONS
This application contains subject matter which is related to the subject
matter of the following applications which are assigned to the same
assignee as this application:
"Configurable, Recoverable Parallel Bus" by N. G. Bartow et al, Ser. No.
08/071,146, pending Filed: Feb. 20, 1992; "High Performance Channels For
Data Processing Systems" by N. G. Bartow et al, Pat. No. 5,412,803; and
"Frame-Group Transmission And Reception For Parallel/Serial Buses", by N.
G. Bartow et al, Pat. No. 5,267,240.
Specifications Incorporated by Reference:
The entire specifications of the following listed applications are
completely incorporated by reference as part of the subject application.
Each of the following listed applications is owned by the same assignee as
the subject application, is filed on the same day as the subject
application, and has the same priority date as the subject application.
They are:
"Communicating Messages Between Processors And A Coupling Facility" by D.
A. Elko et al, Ser. No. 08/420,893, pending; "Sysplex Shared Data
Coherency Method and Means" by D. A. Elko et al, Ser. No. 07/860,805,
pending; "Method and Apparatus For Distributed Locking of Shared Data,
Employing A Central Coupling Facility" by D. A. Elko et al, Pat. No.
5,339,427; "Command Quiesce Function" by D. A. Elko et al, Pat. No.
5,339,405; "Storage Element For A Shared Electronic Storage Cache" by D.
A. Elko et al, Ser. No. 07/860,807, pending; "Command Retry System" by D.
A. Elko et al, Pat. No. 5,392,397; "Integrity Of Data Shared Between
Caches Over A Link" by D. A. Elko et al, Pat. No. 5,331,673; "Management
Of Data Objects Used To Maintain State Information For Shared Data At A
Local Complex" by J. A. Frey et al, Pat. No. 5,388,266; "Recovery Of Data
Objects Used To Maintain State Information For Shared Data At A Local
Complex" by J. A. Frey et al, Pat. No. 5,394,542; "Message Path Mechanism
For Managing Connections Between Processors And A Coupling Facility" by D.
A. Elko et al, Ser. No. 08/324,447, pending; "Method And Apparatus For
Notification Of State Transitions For Shared Lists of Data Entries" by J.
A. Frey et al, Pat. No. 5,390,328, "Method And Apparatus For Performing
Conditional Operations on Externally Shared Data" by D. A. Elko et al,
Ser. No. 08/383,532; pending "Apparatus And Method For List Management In
A Coupled Data Processing System" by J. A. Frey et al, Pat. No. 5,410,695,
"Interdicting I/O And Messaging Operations In A Multi-System Complex" by
D. A. Elko et al, and "Method And Apparatus For Coupling Data Processing
Systems" by D. A. Elko et al, Pat. No. 5,317,739.
Introduction
In a data processing system comprised of a plurality of operating systems
supporting attachment to shared DASD and a shared electronic storage
facility, data is to be shared and managed on disk, in a cache contained
in the shared electronic storage facility, and in local processor storage.
Managing the movement of data between DASD and the shared electronic
storage must address the problems of: insuring continued access to the
data while it is being moved between locations; optimizing use of the
shared electronic storage such that data having the most frequent
reference remains resident in the facility; providing means of moving
modified data from the shared electronic storage facility to DASD
efficiently so as to avoid congestion either at the facility or at the I/O
subsystem including the DASD.
In particular, this invention relates to increasing system efficiency in
reliably moving a cache version of a block of data to secondary storage
after being updated in a multi-system, data sharing complex.
Background
Typically, prior hardware caches in a processor comprise a storage array
having fixed-size data blocks. Such storage is viewed by the hardware as a
linear array of blocks. The blocks of data in the cache are managed by a
cache directory, which invalidates or casts data blocks in or out of such
cache based on LRU (least recently used) storage references. Well-known
types of hardware caches are used in a central processing units (CPUs),
and in a DASD (direct access storage devices).
In a database system wherein a plurality of independently-operating
computer systems share data, global locking is required to maintain
coherency of data in the different systems. A. J. van de Goor, in COMPUTER
ARCHITECTURE AND DESIGN, Addison Wesley, 1989, discusses the data
coherency problem as one in which sharing data among a proliferation of
processors raises the possibility that multiple, inconsistent copies of
data may exist because of multiple paths to the data and because of
opportunities to locally modify the data.
Solutions to the data coherency problem have been proposed. All are based
essentially on the existence of a global lock on data retrieved from a
central location. Assuming pagination of data, one computer system of a
multi-computer system which shares data stored on a disk acquires a global
lock on a page of data and obtains and updates the page. The lock
signifies to the other computer systems that the page has been acquired
for updating. Prior to releasing the lock on the page, the computer system
holding the lock writes the page to the disk, after which it generates and
sends a message to the other computer systems to invalidate any copies of
the page which may be held in their local cache. The lock on the page is
not released until acknowledgement is received from every other computer
system having access to the page. A solution similar to this is described
in detail in Pat. Nos. 4,399,504 and 4,965,719, which are assigned to the
assignee of this patent application and are incorporated herein by
reference. A commercial product available from the assignee of this
application and which incorporates this solution is the IMS/VS system with
the data sharing feature.
The prior art global locking system provides great advantage in maintaining
data coherency. However, the overhead penalties inherent in it include the
requirement for performing an I/O procedure when a page is updated and
undertaking message exchange after the I/O procedure in order to :notify
the other systems and release the lock.
When used in a non-data-shared single system case, the global-locking prior
art incurs extra overhead in maintaining data coherency (consistency)
between transactions by implementing a commit policy requiring each
transaction which updates data to write the modified data, together with
log records, to storage before the transaction is fully committed. This
requires one I/O procedure per page for each modifying transaction, which
increases overhead costs.
In contrast, the IBM DB2 in the single system non-data-sharing case follows
a policy which does not require an I/O process to write an updated page
back to storage in order to commit a transaction. If the protocol
described above is used in a data-sharing situation where a plurality of
computer systems access one or more data storage sites, the performance
could degrade significantly because of the required write back to storage
and message delay. In this regard, see C. J. Date's discussion of
concurrency at pages 593-595 in Vol. I of AN INTRODUCTION TO DATABASE
SYSTEMS, Addison-Wessley, 1986.
In a multi-computer, data-sharing system which includes multiple levels of
storage, it is contemplated that a secondary level of storage would
consist of one or more direct access storage devices (DASD's) which are
shared by independently-operating computer systems. Typical nomenclature
for hierarchally-arranged storage systems classify DASD and other such
storage facilities as "secondary" storage. In this regard, secondary
storage includes all facilities from which data must be moved to "primary"
storage before it can be directly referenced by a CPU. See Detiel,
OPERATING SYSTEMS, Second Edition, 1990, by Addison Wesley. It is further
contemplated that caching techniques would be useful to provide a
high-speed, frequently-accessed storage for shared data. For various
reasons, data would be entered into a shared cache by the database systems
after acquisition from DASD's. In this regard, a shared cache would be
included in a primary level of storage for a multi-computer, data-sharing
system.
In such a structure, a potential hazard would exist if one computer system
obtained a block of data from the shared cache for the purpose of writing
it to the DASD at the same time that the same block of data is obtained
from the shared cache by another computer system, modified, and returned
to the shared cache. In this situation, it is assumed that the retrieval
of the modified block of data from the shared cache for storage in the
DASD is referred to as "casting out" of the block. Castout requires that
the page being cast out be read from the shared memory, written to DASD,
and then marked as unchanged in the shared memory.
For efficient cache management of the shared cache, it is required that
shared blocks of data be cast out periodically or based on thresholds of
changed blocks in the cache. Once a block is cast out, it is marked as
unchanged and becomes a candidate for deletion from the cache. A
significant danger arises when the casting out is conducted by one
computer system as some second computer system writes a new version of the
page to the shared memory during the interval between the read and delete
operations. The danger is that the delete will erase the new version of
the block. Higher level locking or serialization and queuing in the shared
cache are typically used to ensure that this does not happen. The problem
with higher level locking is that it doubles the cost for removing the
page from the cache because it requires two more multi-system
interactions, that is lock and unlock. It will also delay the writing of
the modified version by the second system which would produce undesirable
performance consequences.
The term "class" has previously been used in record processing control,
such as in the VM/370 spool file class for controlling printing, punching
and networking operations. However, it has never been known to have been
used in relation to any SES device to control castout processing under CPC
control.
SUMMARY OF THE INVENTION
Sysplex Hardware Structure:
FIG. 1 shows a representation of a sysplex system. It contains a plurality
of computer processing complexes (CPCs) from CPC-1 to CPC-M which
represent any number of CPCs from one to a large number, all being
connected to one or more SES (shared electronic storage) device (of which
one SES device 101 is shown in FIG. 1).
Each CPC is of the type shown in FIG. 2, which may be a multiprocessor such
as the presently commercial IBM ES/9000 model 900 which is designed
according to the IBM ESA/390 architecture specified in the Enterprise
Systems Architecture (ESA)/390) Principles of Operations (POP), which is
orderable from IBM by form number SA22-7201-00, and is incorporated herein
by reference in its entirety. Each CPC has one or more operating systems.
If any CPC has more than one operating system, its resources must be
logically partitioned among plural operating systems in using the IBM
PR/SM feature. Inter-system channels (ISCs) are connected between SES
(101) and CPCs 1 through M. An ISC connecting to a CPC communicates
signals to/from microcode/hardware in the CPC.
Each CPC in the sysplex operates with a storage hierarchy, which for
example may include a private high-speed hardware cache in each CPU of a
CPC (201-1 and 201-N), a shared hardware cache accessible to all of the
private processor caches (202), a main storage (MS) shared by all
processors in the CPC (204),a hardware storage area (HSA) associated with
MS but not having MS addressability (205). However, the DASD is grouped by
DASD controls that allow any CPC in the sysplex to access any DASD in the
group, which is referenced herein by the term "sysplex DASD" (207).
The CPC/SES physical connection (208) may be provided by a respective
channel connected at one end to an MS controller in a respective CPC, and
connected at its other end to a SES device. The respective channel bus may
be made of a serial optical fibers. The bus may be a single fiber, but it
may be made of a plurality of fibers operating in parallel by "striping"
(interleaving) data among them.
In a hardware sense, a SES may be considered to be a large random access
memory that may be used in common by all CPCs connected to the SES. The
connected CPCs may use the SES to store shared data records and files on a
temporary or semi- permanent basis. Hence, SES may be considered to be a
component of the storage hierarchy in the system, having a hierarchy level
common to all CPCs attached to the SES, and roughly corresponding to the
Expanded Store (ES) level in the CPCs.
In a sysplex using this invention, one or more SES entities may be
physically connected to the MS/ES in every CPC in the sysplex. It is not
required that all CPCs in a sysplex be connected to a SES. For example, a
SES may be attached only to a subset of CPCs operating the same
programming subsystem. And different subsets of CPCs may be connected to
different SESs in a sysplex for running different programming subsystems.
A fundamental feature in this invention is using SES as a high-speed cache
for data normally stored in the sysplex common DASD, although the
CPC/SES/DASD physical connections may not be in a direct hierarchical
path. Any CPC in the sysplex can access a record much faster from SES than
it can from the common DASD storage. That is, a data element or record can
be quickly accessed in SES without the electro-mechanical delays found
with DASD, such as waiting for head movement between tracks and waiting
for track spin to reach a requested DASD record.
Special commands are provided to allocate the SES cache. Also, a plurality
of caches may be allocated within the same SES, such as having a
respective cache handle the data shared by attached subsets of CPCs using
different programs.
Each SES cache includes a directory (102), data area (103), local cache
register (104), and cache controls (105). If the data area part of the
cache is not going to be used, it may be made zero in size. Each valid
directory entry in a SES cache contains a name of a data element
registered in SES by any of its attached CPCs. SES may or may not contain
a copy of the data in the registered element. The SES registered name is
also the name of one or more copies of the data element in one or more
CPCs in the sysplex. Furthermore, this directory name also identifies a
copy of the data element stored in (or about to be stored in) one of the
DASDs 1-K in the bank of DASD connected to director 207.
A primary object of this invention is to provide a method and structure in
a shared data, multi-computer system which guarantees that any page of
data in a shared cache (aka SES) which is being cast out prior to deletion
will not result in deletion of a later version of the page written to the
shared memory (aka SES) while the castout operation is in progress.
A significant advantage of the invention is that it does not require higher
level locking or serialization and queuing mechanisms in a shared memory
to guarantee consistency between page versions when removing a page from
the shared memory for entry into secondary storage (DASD).
An important object of this invention is to provide a method for operating
a multi-system, data-sharing complex in which data is cached in a shared
electronic memory (aka SES). In a multi-system, data-sharing complex, a
database system executing on a first computer system could be reading a
modified page in a shared cached as a first step to write the page to
secondary storage while another database system could be trying to cache
an even more recently updated version of the same page in the shared
cache. The invention detects such a condition and, without a blocking
mechanism such as locking, bars deletion of the updated copy of the page
from the cache after the first computer system has stored the prior
version in secondary storage.
This invention involves a sysplex using a plurality of operating systems
(OSs). Any CPC in the sysplex may have its resources logically partitioned
among a plurality of different OSs to provide a multiplicity of
independent OSs within a single CPC, such as by the IBM processor
resource/system management (PR/SM) system. Thus a sysplex may have any mix
of OSs running on its different CPCs, some CPCs each having one OS, and
other CPCs each having a plurality of OSs running independently of each
other. One or more subsystems may be running under any OS in any CPC,
including the IBM DB2, DFP, IMS, VSAM, etc. subsystems.
Different copies of the same data base subsystem program may be running
simultaneously and independently in the different CPCs. With this
invention, these different programs may be accessing the same or different
data elements or records in the data base, which may simultaneously be in
MS/ES local caches (LCs) of the different CPCs.
It is a primary object of this invention to provide for managing the
movement of data between DASD and the shared electronic storage while
addressing the problems of: insuring continued access to the data while it
is being moved between locations; optimizing use of the shared electronic
storage such that data having the most frequent reference remains resident
in the facility; providing means of moving modified data from the shared
electronic storage facility to DASD efficiently so as to avoid congestion
either at the facility or at the I/O subsystem including the DASD.
A key innovation of this invention is a technique for operating a shared
cache that does not require any additional serialization mechanisms such
as highe | | |