WO2003090089A1 - Cache device - Google Patents

Cache device Download PDF

Info

Publication number
WO2003090089A1
WO2003090089A1 PCT/JP2002/003973 JP0203973W WO03090089A1 WO 2003090089 A1 WO2003090089 A1 WO 2003090089A1 JP 0203973 W JP0203973 W JP 0203973W WO 03090089 A1 WO03090089 A1 WO 03090089A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
cache
unit
message
cache device
Prior art date
Application number
PCT/JP2002/003973
Other languages
French (fr)
Japanese (ja)
Inventor
Masanori Goto
Yoshitake Shinkai
Original Assignee
Fujitsu Limited
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Limited filed Critical Fujitsu Limited
Priority to PCT/JP2002/003973 priority Critical patent/WO2003090089A1/en
Priority to JP2003586765A priority patent/JPWO2003090089A1/en
Publication of WO2003090089A1 publication Critical patent/WO2003090089A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements

Definitions

  • the present invention relates to a cache device for temporarily storing data, a cache system, and a cache method.
  • the present invention has two cache devices, and refers to data provided from an access host or a secondary storage device.
  • each cache device, a cache system, and a cache method in a cache system for storing data from an access host in a secondary storage device are described. Background art
  • Secondary storage devices such as hard disks were used only by one access host, but in recent years, multiple secondary storage devices shared by multiple access hosts via a storage network or the like have been used in recent years. Secondary storage devices consisting of are widely used. For these secondary storage devices, data is read and written from the access host via the storage network.
  • cache memory cache memory
  • a cache device plays a role of temporarily storing data read from or written to a secondary storage device using a high-speed primary storage device. It has a great effect on improving the performance of
  • data such as storage virtualization address translators and file system appliance devices are shared between the shared secondary storage device group and the access host. If it is necessary to go through a device that intercepts in the middle, using a cache device on that device is an effective method for improving performance.
  • a single cache device often becomes a bottleneck and degrades performance. That is, when there is a single cache device, accesses to the secondary storage device group pass through only one cache device. For this reason, even if the number of access hosts and secondary storage devices increases, a sufficient throughput for the cache device cannot be secured, and the overall performance is determined by the performance limit of the cache device. In addition, a single cache device loses its data due to a failure in its cache device, resulting in problems such as increased downtime.
  • the state where data exists before being written to the secondary storage device group in the cache device, and the data exists only in the cache device can easily occur at any time. If a failure occurs in the cache device in such a state, data that exists only in the cache device will be lost, making it unrecoverable.
  • tokens A common way to maintain this consistency is to use tokens.
  • information called a token is communicated between multiple cache devices, and data consistency is guaranteed by exclusive control.
  • token control requires a relatively large amount of time due to the high message cost (token communication cost) and the communication time of the token. Therefore, this method has the problem that it may be a bottleneck in devices provided for improving processing speed, such as cache devices.
  • a cache device that uses such a shared memory has the problem that the cache memory is lost if a failure occurs in the shared cache memory device and its management unit. If volatile memory is used as the cache memory, data may be lost due to a power failure. For this reason, it is necessary to use a non-volatile memory, but there is a problem that the cost increases accordingly.
  • An object of the present invention is to eliminate bottlenecks in a single cache device.
  • Another object of the present invention is to prevent loss of data stored in a cache device even when a failure occurs in the cache device.
  • the cache device has two cache devices, stores data provided from an access host or a secondary storage device, and A cache device in a cache system for storing data from a host in the secondary storage device, wherein the data input unit inputs first data provided from the access host; A data receiving unit for receiving the second data input from the access host by the device and transmitted to its own cache device, and / or the first data and / or the second data.
  • a cache storage unit that stores one of the cache units; a cache management unit that manages the cache storage unit; a data transmission unit that transmits the first data to the other cache device; And a data output unit for outputting the second data to the secondary storage device.
  • a cache system has two cache devices, stores data provided from an access host or a secondary storage device, and stores data from the access host in the secondary storage device.
  • a cache input system for inputting first data provided from the access host; and a cache input device for inputting the other data from the access host.
  • a data receiving unit that receives the second data transmitted to the host; a cache storage unit that stores the first data and / or the second data; and a cache that manages the cache storage unit.
  • a data output unit that outputs the first data or the second data to the secondary storage device.
  • a cache method has two cache devices, stores data provided from an access host or a secondary storage device, and stores data from the access host in the secondary storage device.
  • a cache method in a cache system for remembering wherein one cache device receiving data from the access host stores the data in its own cache memory and stores the data in the other cache device.
  • the other cache device receives the data transmitted from the one cache device, stores the data in its own cache memory, and stores the one cache device or the other cache device.
  • the cache device outputs the data to the secondary storage device.
  • two cache devices are provided in the cache system. Each cache device inputs the data to be stored in the secondary storage device from the access host and outputs (stores) the data to the secondary storage device. Therefore, it is possible to obtain twice the processing capacity of a single cache device and eliminate the bottleneck of a single cache device.
  • one of the cache devices that has received the data from the access host stores the data in its own cache memory, and transmits the data that has been input to the other cache device.
  • the other cache device stores the data sent from one cache device in its own cache memory.
  • non-volatile memory in the cache system is achieved overnight. Therefore, even if a failure occurs in one of the cache devices in a state where the data is not stored in the secondary memory device, the data can be obtained from the other cache device, and the data due to the failure can be obtained. Loss is prevented.
  • the data receiving unit transmits the second data.
  • the first data and the second data are used, and based on the address range on the secondary storage device and the contents of both data, the first data and the second data are used.
  • a collision detection unit that determines the presence or absence of a collision between the first data and the second data; and when the collision detection unit detects a collision, transmits a collision detection message indicating that a collision has occurred to the other cache device.
  • a collision detection message receiving unit that receives the collision detection message from the other cache device.
  • the collision detection unit also detects a collision when the collision detection message receiving unit receives the collision detection message from the other cache device.
  • the cache management unit When a collision is detected, the cache management unit gives priority to the first data and the second data based on a predetermined priority. Can be treated as valid and the other as invalid.
  • the cache management unit may determine that the time at which the first data was input to the data input unit and the second data are the data of the other cache device. Among the times input to the input unit, the data with the earlier time
  • the cache device transmits, after a lapse of a random time, the first data or a retransmission message indicating the retransmission of the first data.
  • a cache / message receiving unit for receiving an evening retransmission message, the cache management unit including: a retransmission time by the data / message retransmission unit; and a reception by the data / message receiving unit.
  • the cache management unit including: a retransmission time by the data / message retransmission unit; and a reception by the data / message receiving unit.
  • the data corresponding to the earlier time can be treated as valid, and the data corresponding to the later time can be treated as invalid.
  • the data transmission unit includes, together with the first data, a first flash indicating which cache device outputs the first data to the secondary storage device.
  • the data receiving unit transmits authority information, and the data receiving unit indicates, with the second data, which cache device outputs the second data to the secondary storage device.
  • the cache device monitors the occurrence of a fault in the other cache device, and upon detecting the occurrence of the fault, the first data stored in the cache storage unit.
  • the data output unit or the data output unit of the other cache device has not completed the output to the secondary storage device, and the data transmission unit does not transmit the data to the other cache device.
  • the data output unit or the data output unit of the other cache device has completed output to the secondary storage device.
  • a fault monitoring unit that controls the data output unit to output the missing data to the secondary storage device.
  • FIG. 1 is a block diagram showing the overall configuration of a secondary storage device access system using a cache system according to an embodiment of the present invention.
  • FIG. 2 shows a configuration example of a cache control table held by the cache management unit.
  • Figure 3 shows an example of the data structure of a control message communicated between message communication units.
  • Figure 4 is a sequence diagram showing the flow of the process of writing storage data sent from the access host to the secondary storage device group.
  • Figures 5A to 5C are sequence diagrams showing the flow of the collision detection process when a collision occurs between both cache devices.
  • Figure 6 is a sequence diagram showing the flow of storage data write processing when load distribution is performed.
  • FIGS. 7A to 7E show a case where the address ranges of the two stored data overlap.
  • FIG. 1 is a block diagram showing the overall configuration of a secondary storage device access system using a cache system according to an embodiment of the present invention.
  • This secondary storage device access system (hereinafter simply referred to as “access system”) consists of a cache system 3, an access host group 4, a secondary storage device group 5, an access network 6, And a storage network 7.
  • the cache system 3 has two cache devices 1 and 2. Cache devices 1 and 2 have the same configuration.
  • the cache device 1 includes a cache management unit 11, a cache memory 12, input / output units 13 and 14, a message communication unit 15, and a failure monitoring unit 16.
  • the cache device 2 has a cache management unit 21, a cache memory 22, input / output units 23 and 24, a message communication unit 25, and a failure monitoring unit 26.
  • Access Host group 4, n (n is an integer of 2 or more) having an access host 4 I ⁇ 4 n of.
  • Each access host writes data (hereinafter referred to as “storage data”) to the secondary storage device group 5 via the cache system 3, and writes the data to the secondary storage device group 5 (or cache storage device 5).
  • storage data data
  • the stored data stored in the system 3) is read out via the cache system 3.
  • Each access host is composed of, for example, a convenience store.
  • Secondary storage device group 5 is a secondary storage device that will be shared by the access host access host group 4, m pieces (m is an integer of 2 or more) have a secondary storage device 5 5 m of.
  • Each secondary storage device is assigned a device number (for example, a serial number) to uniquely identify it, and the access host group 4 and the cache system 3 can specify this device number by specifying this device number.
  • One secondary storage device in the secondary storage device group 5 can be specified, and by specifying the address (or block number), the storage data on the specified secondary storage device can be specified.
  • Each secondary storage device is composed of, for example, a hard disk, a magneto-optical disk (MO), and an optical disk (for example, DV D-RAM).
  • the access network 6 includes, for example, an SCS I network, a fiber channel, a LAN (Ethernet), and the like.
  • the storage network 7 is composed of, for example, Fiber Channel.
  • the access host i An, the input / output unit 13 of the cache device 1, and the input / output unit 23 of the cache device 2 are connected to the access network 6.
  • the stored data is transmitted to the cache device 1 or 2 via the access host 4! -4 ⁇ : and the access network 6, and transmitted from the cache device 1 or 2. You can receive the stored data overnight.
  • the IS device 5 i to 5 m , the input / output unit 14 of the cache device 1 and the input / output unit 24 of the cache device 2 are connected to the storage network 7.
  • the cache devices 1 and 2 transmit (write) the storage data to the secondary storage device group 5 via the storage network 7, and receive the storage data from the secondary storage device group 5. Yes (read).
  • Cache devices 1 and 2 are configured independently of each other, so that one fault does not affect the other. As described later, the cache devices 1 and 2 independently receive I / O from the access host group 4 and maintain twice the performance of one cache device while maintaining the transparency of the storage device. Can be obtained.
  • the input / output unit 13 (23) (codes in parentheses indicate corresponding components in the cache device 2. The same applies to the following.) Is for communication such as protocol processing for stored data transmitted and received via the access network 6. Execute the process. In addition, the input / output unit 14 (24) executes communication processing for stored data transmitted and received via the storage network 7.
  • the cache memory 12 (22) is composed of a storage device (RAM, etc.) that can access (read and write) faster than the secondary storage devices of the secondary storage device group 5.
  • the cache management unit 11 (21) holds a cache control table (described later), and manages the storage data stored in the cache memory 12 (22) based on the cache control table.
  • the cache management unit 11 (21) controls the input / output units 13 (23) and 14 (24), the failure monitoring unit 16 (26), and the message communication unit 15 (25). 13 (23) or 14 (24) or writing of storage data input from the message communication unit 15 (25) to the cache memory 12 (22), transmission from the input / output unit, cache memory 12 (22) Transmission of the storage data read from the I / O unit via the input / output unit 13 (23) or 14 (24), transmission / reception of the control message with the other cache device and storage data via the message communication unit 15 (25), etc. I do. Fig.
  • FIG 2 shows an example of the configuration of the cache control table held by the cache management unit 11 (21).
  • the cache control table is provided for the cache memory 12 and for the cache memory 22.
  • the cache control table is maintained by the cache management unit 11 for the former, and is retained by the cache management unit 21 for the latter. You.
  • the cache control table has a cache control list of each storage device currently stored in the cache memory 12 (22).
  • Each cache control list has, as data items, an element number, a device number, a device start address, a data length, a cache start address, a status, and a flag.
  • the “element number” is the element number of the storage data currently stored in the cache memory 1 2 (2 2).
  • one element corresponds to a set of stored data written from or read from a certain access host in the access host group 4.
  • One element may correspond to one byte of storage data, or may correspond to multiple bytes of storage data.
  • a storage data with a block of 512 bytes is transmitted, and the cache memory 1 2 (2 2) stores this 1 block.
  • the cache memory 1 2 stores this 1 block.
  • one element corresponds to one block (512 bytes) of stored data.
  • two blocks of stored data are transmitted from another access host 4 (j is any of l to n) and the stored data of these two blocks is stored in the cache memory 12 (22).
  • One element corresponds to two blocks of memory.
  • the “device number” is the device number (for example, a serial number) of the secondary storage device of the secondary storage device group 5 in which the storage data is to be stored.
  • “Device start address” is the storage start address (start address) of the storage device in the secondary storage device of the corresponding device number.
  • Data length is the length (number of bytes) of the corresponding storage data.
  • the device start address is used. Let ⁇ be the starting block number where the first block is written, and let the length be the end block number where the last block is written. Can also. For example, when two blocks of storage data are stored in the storage area of the fifth block and the storage area of the sixth block of the secondary storage device, the start block number may be 5 and the end block number may be 6.
  • the “cache start address” is the storage start address (start address) of the storage data in the cache memory 12 (22).
  • the “state” indicates the state of the storage device, which includes “received” (hereinafter referred to as “received”), “duty” (hereinafter referred to as “dirty”), and “non-volatile” ( Hereinafter, “non-volatile”, “flushing” (hereinafter, “flushing”), “flash message” (hereinafter, “flushed msg”), “clean” (hereinafter, “clean”) , And “invalidated” (hereinafter “invalidated”).
  • the received state is a state in which the stored data is received from the access host, the state until the transmission of the stored copy message (described later) is completed, or a first acknowledgment message (described later) for the copy message. ) The state until is received.
  • the dirty state refers to a state in which the first acknowledgment message regarding the stored data has been received, and the stored data has not been written to the secondary storage device.
  • the non-volatile state is a state in which storage data included in a copy message transmitted from the other cache device is stored in the cache memory, and this storage data has not yet been written to the secondary storage device group.
  • the flushing state differs from the dirty state in that the storage data is being written to the secondary storage device group.
  • the flushed msg state changes from the non-volatile state to the clean state when the same storage data stored in the other cache device has been completely written to the secondary storage device (flash). This is the state in which a flash message (described later) is notified to the other cache device so as to change to the other cache device.
  • the clean state refers to the state in which writing to the secondary storage device in the storage device has been completed and notification to that effect to the other cache device has been completed.
  • the data stored in the cache memory 12 (22) can be overwritten or deleted at any time. Although it can be discarded, it is stored in the cache memory 1 2 (2 2) in preparation for reading out this memory from the access host group 4 overnight.
  • the invalidated state is a state in which the stored data has been invalidated after the clean state. In the storage device in this state, discard processing such as overwriting and erasing is performed immediately or after a predetermined time has elapsed.
  • the “flag” indicates whether or not the flash is authorized, whether or not writing is in a collision state, whether or not a host acknowledgment message (ACK) has already been returned to the access host.
  • ACK host acknowledgment message
  • the cache management unit 11 (21) When the cache management unit 11 (21) receives the data from the access host group 4 or the secondary storage device group 5 and processes it, the cache management unit 11 (21) refers to the cache control table held by itself, and as a result of the processing, Update the contents of the cache control table as needed.
  • the message communication units 15 and 25 are connected to each other by a communication line L, and send and receive storage messages and control messages to and from each other.
  • a communication line L connecting the two, for example, PCI, Peripheral Component Interconnect Bus, Gigabit Ethernet, or the like is used, and its communication speed is preferably higher than that of the access network 6.
  • Fig. 3 shows an example of the structure of a control message transmitted between the message communication units 15 and 25.
  • the control message has a header section in which control information is stored and a data section in which stored data is stored.
  • the header contains data items of type, device number, device start address, data length, sequence number, status, and flash authority.
  • Type is the type of the message. This type includes “COPY” indicating a copy message, “C-ACK” indicating an acknowledgment message (first acknowledgment message) for a copy message, “FLUSHED” indicating a flash message, and a flash message. “F-ACK” indicating the acknowledgment message (second acknowledgment message), “COLLISION” indicating the collision detection message, and “COL-” indicating the acknowledgment message (third acknowledgment message) for the collision detection message ACK “and” MONITOR “indicating a failure monitoring message. This Each of these control messages will be described later.
  • the “device number” is the storage data added to the data section in the case of a copy message.
  • the device number of the secondary storage device where the evening is stored in the case of a flash message, the device number of the secondary storage device in which the flashed storage device is stored, and in the case of a collision detection message, In the case of an acknowledgment message, the device number is the same as the device number of the corresponding copy message, flash message, collision detection message, etc.
  • the “device start address” is the start address of the secondary storage device that stores the storage data added to the data section in the case of a copy message, and the flashed storage in the case of a flash message.
  • The start address of the secondary storage device where the evening is stored, and in the case of a collision detection message, the start address of the secondary storage device where the storage location where the collision is detected is stored, and the acknowledgment message
  • the start address is the same as the start address of the corresponding copy message, flash message, collision detection message, and the like.
  • the “delivered length” is the storage data added to the data section in the case of a copy message—the length of the evening (number of bytes, blocks, etc.), and the flashed memory in the case of a flash message. In the case of a collision detection message, this is the length of the stored data at which the collision was detected. The value of the data length of the acknowledgment message is set to 0.
  • “Status” is the same data as the status in the cache control table described above. “Sequence number” is the serial number assigned to the transmitted control message. Each of the cache management units 11 and 21 sequentially assigns a serial number starting from 1, for example, to the control message transmitted by itself in accordance with the transmission order. This makes it possible to clarify the time jl order of the control message to be transmitted. Therefore, the cache management unit 11 (21) on the receiving side manages the sequence numbers of the control messages to be received, so that the transmission order of the control messages is different from the transmission order even if the reception order is different from the transmission order. You can know the order exactly.
  • flash authority is defined as a cache device that performs a flash (a process of storing the stored data stored in the cache memory 12 (22) in a secondary storage device). Shows whether the device is 1 or 2. If the flush authority is not specified, this area is set to a value other than the value indicating cache devices 1 and 2 (for example, Null 1).
  • the failure monitoring unit 16 (26) monitors the failure of the other cache device, and if a failure is detected, performs the necessary processing to recover from the failure. For example, the failure monitoring units 16 (26) mutually transmit and receive failure detection messages via the message communication unit 15 (25) at regular time intervals. If one fault monitoring unit does not receive a fault detection message from the other fault monitoring unit within a predetermined time, it determines that a fault has occurred in the other cache device.
  • the failure monitoring unit 16 (26) detects the occurrence of a failure in the other cache device, and is held by the cache management unit 11 (21) of the cache device 1 (2) to which it belongs. Rewrites the status of the cache control table as needed, and executes failure recovery processing. Details of the failure recovery processing will be described later.
  • the access host group 4 writes the storage data to the secondary storage device group 5 via the cache system 3, and the secondary storage device via the cache system 3. Read the stored data from group 5.
  • the following describes the details of the write processing and the read processing, and the failure recovery processing when one of the cache devices in the cache system 3 fails.
  • FIG. 4 is a sequence diagram showing a flow of a write process to the secondary storage device group 5 in the storage device transmitted from the access host 4i.
  • the access host 4 sends the stored data to the cache device 1 or 2 via the access network 6.
  • the storage device is to be transmitted to the cache device 1 or 2 'is preset in the access host 4i. It may be set to transmit to only one of the cache devices 1 and 2, or The transmission may be set to be alternately transmitted to the hash devices 1 and 2.
  • the access host 4 sends a write request signal to the cache devices 1 and 2, and the cache device 1 or 2 that is in the idle state returns a data receivable message to the access host 4 i .
  • the transmission of the stored data may be started (when both the cache devices 1 and 2 transmit the data receivable message, the access host 4i selects one).
  • the access host 4 i transmits the storage data and the control data to the input / output unit 13 of the cache device 1 via the access network 6.
  • the control data is added, for example, as a header for storing data.
  • This control data includes the device number, device start address, and data length of the secondary storage device to be stored in the storage data (hereinafter, the device number, device start address, and data length are referred to as “address range”). ) Is included.
  • the input / output unit 13 gives the control data and the storage data transmitted from the access host 4 i to the cache management unit 11.
  • the cache management unit 11 stores in the cache memory 12 the storage data (storage data b) having an address range that overlaps the address range of the storage data (storage data a) transmitted from the access host 4i. Whether it is stored or not is determined based on the address range of the cache control table of the cache memory 12.
  • the cache management unit 11 If there is no storage data b having an address range that overlaps with the address range of the storage data a, the cache management unit 11 generates a cache control list for the storage data a and stores it in the cache control table. Add to it. Then, the cache management unit 11 writes the stored data a to the memory cell of the cache memory 12 starting from the cache start address of the generated cache control list (S1).
  • Figs. 7A to 7E when the address ranges overlap, as shown in Figs. 7A to 7E, (1) When the address range of the storage device a is exactly the same as the address range of the storage device b (Fig. A), (2) When the address range of storage data a includes the address range of storage data b (Fig. 7B), (3) The address range of storage data a is the storage data. (B) When the address range of the storage device (a) and the address range of the storage device (b) partially overlap with each other, (Figs. 7D and 7E).
  • the cache management unit 11 updates the device number, device start address, and the like of the cache control list of the storage data b to those of the storage device a.
  • the cache management unit 11 generates a cache control list for the storage device a, adds it to the cache control table, and sets the status of the cache control list for the storage device b to "invalidated".
  • the cache control list in the storage device b may be deleted. Then, the cache management unit 11 writes the stored data a to the area of the cache memory 12 starting from the cache start address in the cache control list (S1).
  • the area on the cache memory 12 where the storage data a is written may be the same as the area on the cache memory 12 where the storage data b was stored, or may be another free area. Is also good. In the former case, the stored data b is overwritten by the stored data a. In the latter case, the stored data b remains in the cache memory 12 but the cache $ IJ list is set to "invalidated" or is deleted from the cache control table (overwriting is disabled). It is not treated as a valid memory. Therefore, the stored data b will be overwritten by another stored data thereafter. The same applies to the following cases (2) to (4).
  • the cache management unit 11 In the case of (3), the cache management unit 11 generates a cache control list of the storage data a and adds it to the cache control table for the part where the address ranges overlap, and stores the storage data a in the cache control table. Write to the cache memory 1 2 (S 1). In addition, the cache management unit 11 generates (or updates) a cache control list for each of the two parts of the storage data b except for the part that overlaps the storage data a, and generates a cache control table. To be added.
  • the cache management unit 11 A list is generated and added to the cache control table, and the stored data a is written to the cache memory 12 (S1).
  • the cache management unit 11 generates or updates a cache control list for a portion (one) of the storage data b except for a portion that overlaps with the memory storage a, and generates a cache control table. It comes with calories.
  • the cache management unit 11 transmits a copy message (COPY) to the message communication unit 25 of the cache device 2 via the message communication unit 15 and the communication line L (S2).
  • COY copy message
  • the device number, device start address, and data length of the cache control list of the stored data are written in the device number, device start address, and data length in the header of the copy message.
  • the message communication unit 25 gives the copy message transmitted from the cache device 1 to the cache management unit 21.
  • the cache management unit 21 executes the same processing as that of the above-described step S1 of the cache management unit 11 on the memory a in the data portion of the copy message. I do.
  • the cache management unit 21 updates or generates the cache control list based on the cache control table of the cache memory 22 and writes the stored data a to the cache memory 22 (S7).
  • the stored data a is not lost even if one of the cache devices 1 and 2 stops due to a failure. That is, the nonvolatile storage of the stored data a is completed. Therefore, to indicate this non-volatility, "non-volatile" is written in the state of the cache control list of the storage device a held by the cache management unit 21.
  • the cache management unit 21 After writing the stored data a to the cache memory 22, the cache management unit 21 sends a first acknowledgment message (C-ACK) indicating that the writing has been completed normally to the message communication unit 25 and the communication line L. The message is transmitted to the message communication unit 15 via the server (S8).
  • C-ACK first acknowledgment message
  • the message communication unit 15 sends the first acknowledgment message to the cache management unit 11 Give to.
  • the cache management unit 11 receives the first acknowledgment message from the message communication unit 15, the cache management unit 11 sends an acknowledgment message for the access host (host acknowledgment message) to the input / output unit 13 and the access network 6. It is transmitted to the access host 4i via the server (S3).
  • host acknowledgment message the access host 4 knows that the storage data a has been stored in the cache system 3 (cache devices 1 and 2) and has been nonvolatilely stored.
  • the cache management unit 11 When transmitting the host acknowledgment message, the cache management unit 11 updates the state of the cache control list of the server a from "received” to "dirty".
  • the cache management unit 11 updates the state of the cache control list corresponding to the storage data stored in the cache memory 1.2 to "flushing", and updates this storage data.
  • the Isseki a and transmits the secondary storage device of the output unit 1 4 and through your storage network 7 secondary storage device group 5 (shall be the 5 k.) (S 4) .
  • the secondary storage device 5 k is a secondary storage device corresponding to the Kiyadzushi Interview Control List Bok device number of the storage de Isseki a. Transmitted stored de Isseki a is Ru written in an area starting from the device start address in the secondary storage device 5 k (S 4).
  • the cache management unit 11 updates the state of the cache control table to “flushed msg” and updates the flash message.
  • the message (FLUSHED) is transmitted to the message communication unit 25 via the message communication unit 15 and the communication line L (S5).
  • This flash message is given from the message communication unit 25 to the cache management unit 21.
  • the cache management unit 21 knows that the flushing (that is, the non-volatile storage of the storage device a in the secondary storage device) has been completed, and safely stores the storage data a stored in the cache memory 22. Recognize that it can be erased.
  • the cache management unit 21 updates the state of the cache control list of the storage data stored in the cache memory 22 to “clean” and notifies the cache device 1 that the state has been shifted to the clean state.
  • a second acknowledgment message (F-ACK) is transmitted to the message communication unit 15 via the message communication unit 25 and the communication line L (S9).
  • the cache management unit 11 Upon receiving the second acknowledgment message from the message communication unit 15, the cache management unit 11 updates the state of the cache control list to “clean” in order to treat the stored data a as a clean state. .
  • the cache management units 11 and 21 can always update the status of the cache control list in the clean state to "invalidated" (S6, S10). For example, when the storage data a in the clean state becomes unnecessary or when the cache memory 12 or 22 runs out of free space and the storage data a needs to be erased, the storage data a is deleted. The status can be invalidated. Also, by using the LRU (Least Recently Used) algorithm, the storage data a that has not been read most can be made invalidated.
  • LRU Least Recently Used
  • the cache control list in the invalidated state is then deleted from the cache control table when a new storage data is written to the cache memory, or overwritten by the cache control list of another newly stored data. Will be done.
  • the area of the cache memory in the invalidated storage area is also overwritten by another new memory area.
  • the storage data write processing of the cache system 3 ends.
  • the cache devices 1 and 2 of the cache system 3 can independently receive the storage data from the access host group and execute the write processing independently. Therefore, the cache system 3 has almost twice the processing capacity as compared to the case where only one cache device exists. This eliminates the bottleneck when there is one cache device. Further, since the storage data is held in at least one of the cache devices or the secondary storage device group 5, even if a failure occurs in one of the cache devices, the stored data is not lost.
  • the cache device 2 When the cache device 2 receives the stored data from the access host 4i, only the cache device 1 and the cache device 2 are switched, and the same processing as described above is executed.
  • step S7 the cache device 2 accesses another storage data (storage data c) having the same address range as the storage data a transmitted from the cache device 1 via the communication line L.
  • Received from host 4 j and stored data c May be placed in the received state in the cache device 2. That 3 have the same address range, a different storage de Isseki a and c of the content, Kiyadzushi Interview apparatus 1 and 2, almost simultaneously, there is a case where it it received from different access host. The processing in this case will be described later in the processing at the time of collision of write data.
  • step S1 the stored data b overwritten and erased by the stored data a is in the received state or the flushed msg state, and the first acknowledgment message or the second acknowledgment message for the stored data b is
  • data is being transmitted from the cache device 2 to the cache device 1.
  • the cache device 1 cache management unit 11
  • Whether to ignore the acknowledgment message is determined based on the sequence number contained in the message. For example, if the sequence number is incremented by one in order from 1 and if the cache device 1 receives two first acknowledgment messages, the sequence numbers of the two acknowledgment messages will be changed. Among them, the one with the young (small) value is the response message corresponding to the stored data b. Therefore, in this case, the first acknowledgment message with the lower sequence number is ignored.
  • a storage device a having a different content in the same address range as the storage data (storage device data d) which is flushed by the cache device 2 and is in the flushed msg state is transmitted from the access host to the cache device 1.
  • the cache device 1 ignores the flash message from the cache device 2, and the cache device 2 converts the stored flashed data d into the copy message transmitted from the cache device 1.
  • the inconsistency of the stored data in the same address range can be resolved.
  • the storage device 1 By the time the storage device 1 of the cache device 1 enters the flushing state, the storage device 1 When the cache device 1 receives new storage data (storage data e) in the same address range as the data a from the access host, the cache device 1 (cache management unit 11) stores the secondary storage data. stops writing storage de Isseki a to device 4 k (flushing), only the stored data e by writing to the secondary storage device 4 k, it is possible to avoid the write Mino overlap.
  • the copy message divides the block data into a plurality of parts, May be transmitted.
  • a plurality of first acknowledgment messages are also transmitted corresponding to each part.
  • the state of the cache control list for this block is updated after reception and writing to the cache memory 22 are completed for all blocks.
  • a host acknowledgment message to the access host 4i is also transmitted after receiving the second acknowledgment message for all of the block data.
  • the flash message transmitted in step S5 can be transmitted separately from other messages, or can be transmitted by piggyback in addition to other control messages. That is, immediately after step S4, a flash message can be transmitted as an individual message separated from other messages, and then added to a copy message for another storage message and piggybacked. Can also be sent as
  • the cache device 1 When the storage data b stored in the cache memory 12 and the storage data a received from the access host 4 i have the same contents, the cache device 1 sends the access data to the access host 4 ⁇ . An acknowledgment message can be sent immediately to avoid writing (updating) to the secondary storage (and cache memories 12 and 22). As a result, the cost required for writing can be reduced.
  • “Overwrite collision” means that the access host group sends the cache system 3 In this case, multiple storage data with different contents are written in the same address range, and these multiple storage data are in the received state in the cache system 3.
  • the collision includes a collision in only one cache device and a collision in both cache devices 1 and 2. The following describes the processing when a collision occurs in these two cases.
  • the access host 4 After the cache device 1 receives a certain storage data A1 from the access host 4 , the access host 4 stores the contents of the memory A2 with different contents in the same address range as the storage data A1. When the data is received from the cache device 1, a collision between the stored data A1 and A2 occurs in the cache device 1.
  • the access hosts 4i and 4j may be the same or different.
  • the cache management unit 11 of the cache device 1 overwrites the cache control list of the stored data A1 with the cache control list of the storage data A1 or the storage control A1.
  • the cache control list of the storage device A2 is deleted or invalidated, and a cache control list of the storage device A2 is newly generated and added to the cache control table.
  • the cache management unit 11 writes the storage data A2 to the same area as the storage data A1 or a different area in the cache memory 12.
  • the cache management unit 11 When the cache management unit 11 receives the first acknowledgment message for the stored data A1 from the cache device 2, the cache management unit 11 ignores the first acknowledgment message.
  • the two first acknowledgment messages can be distinguished, for example, in the same manner as described above, by the large and small sequence numbers (old and young), and the first acknowledgment messages with small sequence numbers (young). The response message is ignored.
  • the cache management unit 21 of the cache device 2 stores the cache control list generated based on the copy message (the first copy message) of the stored data A1 in the storage device A2. Either overwrite based on the copy message (the second copy message) or erase or invalidate the cache control list of storage data A1 and cache control of storage data A2. A new list is created and added to the cache control table. Also, the cache management unit 21 In the flash memory 22, the memory A 2 is written to the same area as the memory A 1 or a different area.
  • the second copy message transmitted later is received by the cache device 2 before the first copy message transmitted earlier. There is. Also in such a case, the cache management unit 21 ignores (discards) the first copy message based on the sequence numbers of the first copy message and the second copy message, and deletes the first copy message. 2 ⁇
  • the storage of the copy message can be stored in the cache memory 22.
  • 5A to 5C are sequence diagrams showing the flow of the collision detection process when a collision occurs between the two cache devices.
  • storage data A1 and storage data A2 are storage data having the same address range and different contents.
  • the storage data A1 transmitted from the access host 4 is received by the cache device 1 and is in the receive state, and the storage data A1 transmitted from the access host 4j is also received.
  • A2 is received by the cache device 2 and is in the receive state. Therefore, the stored data A1 and the stored data A2 are in a collision state.
  • reception time of the stored data A1 of the cache device 1 and the reception time of the stored data A2 of the cache device 2 may be simultaneous, or one may be earlier or later than the other. .
  • FIG. 5A shows that one cache device (cache device 2) is stored in memory A2. This figure shows the flow of the collision detection process when a copy message of the storage device A1 is received from the other cache device (cache device 1) before sending the copy message.
  • the cache device 1 attempts to transmit the copy message by receiving the stored data A1 from the access host 4i and the cache device 2 receiving the stored data A2 from the access host 4j (Sll). , S13). However, if the copy message of the storage data A1 is received from the cache device 1 before the cache device 2 transmits the copy message, the cache device 2 (cache management unit 21) stores the data in the storage device. Evening A2 detects that a collision has occurred (S14).
  • the cache device 2 (cache management unit 21) calculates (a) the address range (that is, the device number, the device start address, and the data length) included in the header of the copy message of the storage data A1; By comparing the address range of A3 with the address range of A2, it is detected that the address range is the same, and (b) the address of A1 is stored in the data area of the copy message. By comparing the contents with the contents of the stored data A2, it is detected that the contents of the stored data A2 are different, and (c) the stored data A2 is determined by the cache control list of the stored data A2. It detects that the storage device A1 is in the receive state based on the receive state and the status of the header of the copy message. From these (a) to (c), the cache device 2 detects the occurrence of a collision between the stored data A1 and the memory A2.
  • the cache device 2 Upon detecting the collision, the cache device 2 stops transmitting the copy message of the stored data A2, and transmits a collision detection message (COLLISION) to the cache device 1 instead of the first acknowledgment message ( S14).
  • COLLISION collision detection message
  • the cache device 1 (cache management unit 11) detects that a collision has occurred in the storage device A1 by receiving the collision detection message from the cache device 2 (S12). That is, based on the fact that the message is a collision detection message and the address range included in the header of the collision detection message, the cache device 1 (cache management unit 11) detects a collision in the storage device A1. Detect that it has occurred.
  • the cache devices 1 and 2 are switched, that is, when the cache device 2 transmits the copy message of the storage device A2 to the cache device 1 before the cache device 1, the cache device 1 The collision detection message is transmitted to the cache device 2.
  • both cache devices can detect the occurrence of a collision.
  • Figure 5B shows the flow of the collision detection process when both cache devices send and receive a copy message.
  • Cache device 1 sends a copy message of stored data A 1 (S 21), cache device 2 sends a copy message of stored data A 2 (S 24), and both cache devices send When receiving the other party's copy message, each of the cache devices detects a collision by the other party's copy message (S22, S25) o
  • the cache device that has detected a collision transmits a collision detection message to the other party instead of the first acknowledgment message (S22, S25).
  • both cache devices transmit a collision detection message to the other cache device.
  • both cache devices will again detect a collision that has already been detected.
  • both cache devices when both cache devices transmit and receive a copy message, both cache devices can detect a collision based on the copy message. Furthermore, in this case, both cache devices can send a collision detection message so that both cache devices can mutually notify that they have detected a collision.
  • both cache devices transmit a copy message, but the copy message of the stored data A1 is received by the cache device 2 after the collision detection message of the cache device 1.
  • the flow of the collision detection process Is shown.
  • the cache device 2 detects the collision based on the collision detection message transmitted from the cache device 1 (S35), and then detects the detected collision by the received copy message of the storage device A1. Is detected again (S36). As a result, a collision is detected in both cache devices (S32, S35, S36)
  • the cache device 2 may transmit a third acknowledgment message (COL-ACK) to the cache device 1 after detecting the detected collision, as indicated by the broken line in FIG. 5C.
  • COL-ACK third acknowledgment message
  • the cache device 1 again detects the detected collision by this message (S33).
  • S33 A situation opposite to that of FIG. 5C may occur. That is, the copy message of the storage device A2 arrives at the cache device 1 with a delay. In this case, the same processing is performed only by switching between cache devices 1 and 2.
  • the first method when a collision is detected, it is determined in advance which of the cache devices 1 and 2 is to be prioritized, and the stored data received by the prioritized cache device 1 is made valid.
  • This is a collision resolution method. In this case, only the data stored in the priority cache device is treated as valid, and the data stored in the non-priority cache device is treated as invalid.
  • the stored data is treated as valid means that the cache control list of the stored data exists in the cache control table in a state other than the invalidated state, and the stored data is stored in the cache memory. That is being done.
  • the stored data is treated as invalid means that the cache control list of the stored data is deleted from the cache control table (including the case where it is overwritten by another cache control list). , Or that the status of the cache control list is invalidated. In the memory day, In some cases, it may exist in memory, and in other cases it may have been erased from the cache memory (including cases where it is overwritten by other storage devices).
  • the cache management unit 11 of the cache device 1 detects the collision (S12), but the cache control list of the storage data A1 There is no need to update the cache memory 12. That is, in the cache device 1, the stored data A1 is treated as valid, and the stored data A2 is treated as invalid.
  • the cache management unit 21 of the cache device 2 adds the cache control list of the storage data A1 to the cache control table based on the information in the header of the copy message of the storage data A1, and adds the cache memory. Write the memory data A 1 to 2 2.
  • the cache control list of the stored data A2 is deleted or placed in the invalidated state. As a result, even in the cache device 2, the stored data A1 is treated as valid, and the stored data A2 is treated as invalid.
  • the cache management unit 21 of the cache device 2 needs to update the cache control list and the cache memory 22 of the storage device A2 after detecting the collision. Absent. Then, the cache management unit 21 transmits a copy message of the stored data A2 to the cache device 1. This copy message may be sent separately from the collision detection message, or may be sent as a background with the collision detection message.
  • the cache management unit 11 of the cache device 1 adds the cache control list of the storage data A2 to the cache control table based on the information in the header of the copy message, and writes the storage data A2 to the cache memory 12.
  • the cache control list of the stored data A1 is deleted or placed in the invalidated state. As a result, even in the cache device 1, the storage data A2 is treated as valid, and the storage data A1 is treated as invalid.
  • the cache device 1 may return the first acknowledgment message in response to the copy message from the cache device 2, it is preferable that the cache device 1 does not return the first acknowledgment message in order to reduce the communication cost of the message. If the first acknowledgment message is returned Then, the cache device 2 may ignore this first acknowledgment message.
  • both cache devices 1 and 2 hold both storage data A1 and storage data A2. The stored data received by the device is treated as valid, and the stored data received by the non-priority cache device is treated as invalid.
  • the second method compares the reception time of the storage data of the cache device 1 with the reception time of the storage data of the cache device 2, and gives priority to the storage data of the earlier reception time. This is a conflict resolution method.
  • the cache devices 1 and 2 communicate the reception time via the communication line L, or transmit the reception time by a copy message or a collision detection message. As a result, the reception time is mutually notified. Then, the storage data received at the earlier reception time is prioritized, the storage data is treated as valid, and the storage data received at the later reception time is treated as invalid. Become. When the reception time is notified by a copy message or a collision message, an area for storing the time is provided in the header or data section of these messages.
  • This second method also eliminates the collision state, and ensures consistency and transparency of the stored data in the cache devices 1 and 2.
  • the third method is a conflict resolution method in which both cache devices transmit a copy message (retransmission copy message) or a retransmission instruction message again after a random time has elapsed after collision detection.
  • the cache device that transmitted the retransmission message or the retransmission instruction message earlier has priority, and the stored data received by this cache device from the access host is treated as valid.
  • the random time is, for example, a time obtained based on pseudo-random numbers generated by the cache management units 11 and 21 respectively.
  • the message transmitted after the elapse of the random time may be a retransmitted copy message containing the stored data A1 or A2, but the stored data A.1 and A2 are transmitted to the cache device on the other side. If it already has one, it is preferable to use a retransmission instruction message to indicate retransmission without including data storage in order to reduce communication costs.
  • the type of the header part is a resend copy message. ":”. The contents of the other header parts are the normal copy message.
  • the retransmission instruction message has only a header part and no data part.
  • the type of the header part of the retransmission instruction message is ": RETX", which indicates the retransmission instruction message, and the address of the header.
  • the range is set to the same address range as the previously transmitted storage data, so that the cache device on the receiving side can identify the retransmission message for the previously received storage data.
  • the cache device 1 (cache management unit 11) transmits a retransmission instruction message to the cache device 2 via the communication line L after a random time has elapsed. After a random time elapses, the cache device 2 (cache management unit 21) transmits a retransmission copy message including the stored data A2 to the cache device 1 via the communication line L.
  • the cache device 1 If the retransmission instruction message transmitted by the cache device 1 is transmitted before the retransmission copy message transmitted by the cache device 2, the cache device 1 takes precedence, and therefore, the storage device A1 is regarded as valid. Will be handled. On the other hand, when the retransmission copy message transmitted by the cache device 2 is transmitted before the retransmission instruction message transmitted by the cache device 1, the cache device 2 has priority, and therefore, the storage device A2 is valid. Is treated as something In this case, since the cache device 1 does not have the storage device A2, the cache device 2 sends the memory A2 to the cache device 1 by a copy message or the like.
  • the retransmission instruction message transmitted by the cache device 1 and the retransmission copy message transmitted by the cache device 2 are simultaneously transmitted and received. In this case, a random time is counted again and the same process is repeated.
  • another storage device having the same address range may be transmitted from the access host and received by the cache device 1 or 2.
  • the cache device 1 or 2 that has received another storage device transmits the other storage device to the other cache device again by a copy message.
  • This third method also eliminates the collision state, and ensures consistency and transparency of the stored data in cache devices 1 and 2.
  • the storage data of a plurality of bytes is stored.
  • a collision may occur in a part of the area. In this case, the collision detection processing and the recovery processing are executed for a part where the collision has occurred.
  • the access host 4i needs a read request including the address range of the storage data to be read.
  • the request is transmitted to the input / output unit 13 of the cache device 1 via the access network 6. This read request is given from the input / output unit 13 to the cache management unit 11.
  • the cache management unit 11 determines whether stored data in the address range included in the read request exists in the cache memory 12 based on the cache control table. Except for the stored data in the received state and the invalidated state, the stored data in other states is determined to exist in the cache memory 12. If all or part of the storage data corresponding to the address range is not stored in the cache memory 12, the cache management unit 11 deletes the part not stored in the cache memory 12. The data is read from the corresponding secondary storage device of the secondary storage device group 5 via the input / output unit 14 and the storage network 7 and stored in the cache memory 12. Along with this, the cache management unit 11 generates a cache control list related to the storage data stored in the cache memory 12 from the secondary storage device and adds it to the cache control table. Note that "clean" is written in the status of this cache control list.
  • the cache management unit 11 reads out the storage data corresponding to the read request from the cache memory 12 and transmits it to the access host 4 via the input / output unit 13 and the access network 6.
  • the cache management unit 11 operates in the cache device 2 (the cache memory 2). You may receive this memory from 2).
  • the time sequence can be changed by using a general control synchronization mechanism of the access host 4 ⁇ . Can be guaranteed.
  • the cache device that has received the storage data from the access host writes (flashes) the storage data to the secondary storage device.
  • this flash can be distributed between the two cache devices.
  • the write process can be shared by the other cache device. Also, when there is a difference between the processing capacity and performance of the two cache devices, more write processing can be performed by a cache device with higher performance and performance. As a result, load distribution between cache devices 1 and 2 is achieved.
  • the cache management units 11 and 21 both measure the load and periodically use control messages (other control messages different from the copy message and acknowledgment message described above). Mutually inform the load.
  • the measured load includes, for example, the number of times of writing to the secondary storage device group 5 and the amount of data written (the number of bytes and blocks). Then, the cache device with a low load executes the flush.
  • FIG. 6 is a sequence diagram showing a flow of a write process in a storage device when load distribution is performed.
  • the cache management unit 11 When the cache device 1 receives the stored data from the access host 4 i, the cache management unit 11 generates a cache control list and stores the cache control list in the cache memory 12, as in step S 1 in FIG.
  • the memory of the memory is remembered (S40).
  • the cache management unit 11 sends the copy message to the cache device 2 (S41).
  • the cache management unit 11 specifies the cache device 2 as the flush authority of the header of the copy message.
  • the cache management unit 21 receives the command for which the cache device 2 is specified for the flash right.
  • a cache control list is generated, and the state of the generated cache list is set to a dirty state instead of the non-volatile state normally set, and the storage data included in the copy message is stored.
  • the evening is stored in cache memory 22 (S42).
  • the cache management unit 21 returns a first acknowledgment message to the cache device 1 (S8).
  • the cache management unit 11 When the cache management unit 11 receives the first acknowledgment message, it sets the cache control list to a non-volatile state instead of the dirty state, and sends a host acknowledgment message to the access host 4i. Yes (S43).
  • the cache management unit 21 changes the dirty storage state to the flushing state at an appropriate timing, and writes the flushed state to the secondary storage unit (S44).
  • the cache management unit 11 changes the state of the cache control list from non-volatile to clean, and the cache management unit 21 changes the state of the cache control list from flushing to flushed msg. This is the same as the corresponding processing of steps S5 to S10 shown in FIG.
  • the load can be distributed by transferring the flash authority for storing data in the appropriate address range to the other cache device.
  • the flush authority is given to the other cache device.
  • the fact that the own cache device has the flash authority can be notified to the other cache device by a control message such as a copy message. .
  • the load value can be the ratio of the load to the performance of each cache device.
  • the cache device 1 divides its own load value by its own performance value (that is, (the load value of the cache device 1) ⁇ (the value of gender g of the cache device 1)), and calculates the result of this division.
  • the data is transmitted to the cache device 2, and the cache device 2 also transmits the division result of the own device to the cache device 1.
  • the flushing authority may be given to a cache device having a lower value of the two ratios.
  • the failure monitoring units 16 and 26 operate the other cache unit. Monitor the situation and determine if a failure has occurred. For example, the failure monitoring units 16 and 26 send failure detection messages via the communication line L to the other cache device at fixed time intervals. If the failure monitoring units 16 and 26 do not receive the failure detection message transmitted from the other cache device even after the lapse of a predetermined time, a failure occurs in the other cache device. Judge that it is.
  • the following describes recovery processing when a failure is detected in the cache device 1 and the failure monitoring unit 26 detects this failure.
  • the cache device 2 When the failure of the cache device 1 is detected, the cache device 2 replaces the cache device 1 with the dirty state storage data that is to be written from the cache memory 12 to the secondary storage device group 5. Must be written to secondary storage.
  • the failure monitoring unit 26 based on the cache control table held by the cache management unit 21 after the failure is detected (that is, the cache control table related to the stored data stored in the cache memory 22), Rewrite the non-volatile state of storage data to dirty state. As a result, the storage data changed to the dirty state is written (flushed) to the secondary storage device group 5 by the cache management unit 21.
  • the storage device in the flushing state in the cache device 1 is also stored in the cache memory 22 in the cache device 2 as the storage device in the non-volatile state. Therefore, the storage device in the flushing state is also changed from the non-volatile state to the dirty state in the cache device 2 in the same manner as described above, so that the cache device 2 can reliably store the data in the secondary storage device. It will be memorized.
  • the cache device 1 If the cache device 1 recovers from the failure, or if the cache device 1 is switched to another backup cache device, a situation may occur in which only one of the cache devices has a dirty state storage device. obtain. Therefore, In order to prevent such a situation from occurring, the return timing of the cache device 1 is controlled so that the cache device 1 is not returned unless all cache data stored in the cache memory 22 is in the clean state. Is done. Alternatively, the storage device in a dirty state before the cache device 1 returns may be transmitted to the cache device 1 after the recovery.
  • the failure monitoring unit 16 of the cache device 1 executes the same processing as the failure monitoring unit 26 described above.
  • the present invention can be used for a cache system arranged between an access host (group) such as a computer and a secondary storage device (group).
  • group such as a computer
  • group secondary storage device
  • the two cache devices since the two cache devices independently receive and process the storage data from the access host, almost double the processing capacity can be obtained for a single cache device. Therefore, the bottleneck of a single cache device can be eliminated.
  • the storage data in the cache system can be made non-volatile. As a result, even if a failure occurs in one of the cache devices, loss of stored data is prevented.

Abstract

A cache system having two cache devices which holds data given from an access host or a secondary storage device, and stores the data in the secondary storage device. One cache device which receives data from the access host stores the data in a cache memory thereof, and transmits the data to the other cache device. The other cache device receives the data transmitted from the one cache device, and stores the data in a cache memory thereof. The one cache device or the other cache device outputs the data stored in the cache memory to the secondary storage device, and stores it. After storing the data in the secondary storage device, the cache device holding the data transmits a flash message to the other cache device. Since the data is stored in each of the two cache devices, any bottleneck of when the cache system has a single cache device can be eliminated, and the data is prevented from being lost even when one cache device fails.

Description

明細書 キャッシュ装置 技術分野  Description Cash device Technical field
本発明は, データを一時的に記憶するキャッシュ装置, キャッシュシステム, およびキヤヅシュ方法に関し, 特に, 2つのキヤヅシュ装置を有し, アクセスホ ストまたは 2次記憶装置から与えられるデ一夕を言 3憶するとともに, アクセスホ ストからのデ一夕を 2次記憶装置に記憶させるキヤヅシュシステムにおける各キ ャヅシュ装置, 該キャッシュシステム, およびキヤヅシュ方法に閧する。 背景技術  The present invention relates to a cache device for temporarily storing data, a cache system, and a cache method. In particular, the present invention has two cache devices, and refers to data provided from an access host or a secondary storage device. In addition, each cache device, a cache system, and a cache method in a cache system for storing data from an access host in a secondary storage device are described. Background art
従来, ハ一ドディスク等の 2次記憶装置は 1つのアクセスホストにのみ使用さ れていたが, 近年, ストレージ用ネットワーク等を介して複数のアクセスホスト により共用される, 複数の 2次記憶装置からなる 2次記憶装置群が広く使用され てきている。 これら 2次記憶装置群に対しては, アクセスホストからストレージ 用ネヅトワークを介してデータの読み出しおよび書き込みが行われる。  In the past, secondary storage devices such as hard disks were used only by one access host, but in recent years, multiple secondary storage devices shared by multiple access hosts via a storage network or the like have been used in recent years. Secondary storage devices consisting of are widely used. For these secondary storage devices, data is read and written from the access host via the storage network.
このような 2次記憶装置は, その構造から, 要求アクセスパターンによっては スループット/レスポンス性能が十分に発揮されないことが多い。 また, R A I D (Redundant Array of Inex ensive Disks) 5を使用する場合には, 書き込み に要するオーバへッドが大きい。  Due to the structure of such a secondary storage device, the throughput / response performance is often not sufficiently exhibited depending on the required access pattern. In addition, when using RAID (Redundant Array of Inexpensive Disks) 5, the overhead required for writing is large.
そこで, キャッシュ装置 (キャッシュメモリ) を用いて, 比較的頻繁に使用さ れるデ一夕や 2次記憶装置に書き込まれるデ一夕を一旦キャッシュ装置に記憶さ せておくことで性能向上を図ることが一般に行われている。  Therefore, performance is improved by using a cache device (cache memory) to temporarily store data that is used relatively frequently and data that is written to a secondary storage device in the cache device. Is commonly done.
キヤヅシュ装置は, 2次記憶装置から読み出され, または, 2次記憶装置に書 き込まれるデータを, 高速な 1次記憶装置を利用して一時的に保管する役割を果 たし, 計算機システムの性能向上に大きな効果をもたらしている。  A cache device plays a role of temporarily storing data read from or written to a secondary storage device using a high-speed primary storage device. It has a great effect on improving the performance of
特に, 共用される 2次記憶装置群とアクセスホストとの間に, ストレ一ジ仮想 化用アドレス変換装置やファイルシステム用のアプライアンス装置等, データを 中間でインタセプトするタイプの装置を経由する必要がある場合に, その装置上 でキャッシュ装置を使用することは性能向上に有効な手法となる。 In particular, data such as storage virtualization address translators and file system appliance devices are shared between the shared secondary storage device group and the access host. If it is necessary to go through a device that intercepts in the middle, using a cache device on that device is an effective method for improving performance.
しかし, 単一のキャッシュ装置は, ボトルネックとなり, 性能を悪ィ匕させるこ とが多い。 すなわち, キャッシュ装置が単一である場合に, 2次記憶装置群に対 するアクセスが 1つのキャッシュ装置のみを通過する。 このため, アクセスホス トおよび 2次記憶装置が増加しても, キヤッシュ装置に対する十分なスル一プヅ トを確保できず, 全体の性能はキヤヅシュ装置の性能限界により決定される。 また, 単一のキヤヅシュ装置では, そのキャッシュ装置の障害により, デ一夕 が失われ, その結果, ダウンタイムの増加等の問題を引き起こす。  However, a single cache device often becomes a bottleneck and degrades performance. That is, when there is a single cache device, accesses to the secondary storage device group pass through only one cache device. For this reason, even if the number of access hosts and secondary storage devices increases, a sufficient throughput for the cache device cannot be secured, and the overall performance is determined by the performance limit of the cache device. In addition, a single cache device loses its data due to a failure in its cache device, resulting in problems such as increased downtime.
すなわち, キャッシュ装置に, 2次記憶装置群に書き込まれる前のデータが存 在し, そのデ一夕がキヤッシュ装置にのみ存在する状態はいつでも容易に起こり うる。 そのような状態でキャッシュ装置に障害が発生した場合に, キャッシュ装 置にのみ存在するデータは失われてしまい, 回復不能となる。  In other words, the state where data exists before being written to the secondary storage device group in the cache device, and the data exists only in the cache device can easily occur at any time. If a failure occurs in the cache device in such a state, data that exists only in the cache device will be lost, making it unrecoverable.
また, キャッシュ装置の障害によるシステムのダウンタイムが増加すると, 経 済的および信頼性の面で, システムに損害を与えることにもなる。  Also, if the downtime of the system due to a cache device failure increases, the system will be damaged economically and in reliability.
ボトルネヅクの問題に対しては, キヤヅシュ装置を複数設けることによりこの 問題を解決する方法が考えられる。 これは, 複数のキャッシュ装置を複数のァク セスホストに割り当てることで, ボトルネックを解消しスケーラビリティを確保 しょうとするものである。  To solve the bottleneck problem, there is a method to solve this problem by providing multiple cache devices. This aims to eliminate bottlenecks and secure scalability by assigning multiple cache devices to multiple access hosts.
しかし, あるアクセスホストが一方のキヤヅシュ装置にデ一夕を書き込み, こ のデ一夕と同一アドレスで内容の異なるデータを, 他のアクセスホストが他方の キャッシュ装置に書き込んだ場合に, 双方のキャッシュ装置間で内容の異なるデ —夕がキャッシュされることになる。 この状態を放置すると, あるアドレスに対 するキヤヅシュデータが各キヤッシュ装置で不一致のままとなり, 一貫性 (consistency) が保たれなくなる。  However, if one access host writes data to one cache device and writes data with the same address but different contents to the other cache device to the other cache device, the caches of both caches will be lost. Even data with different contents between devices will be cached. If this state is left unchecked, cache data for a certain address will remain mismatched between cache devices, and consistency will not be maintained.
また,あるキャッシュ装置が障害で停止した場合に,他のキャッシュ装置には, 異なるデ一夕がキヤヅシュされていることになり, 透過性 (transparency) が保 持されなくなってしまう。  In addition, if one cache device stops due to a failure, another cache device will have a different cache, and the transparency will not be maintained.
さらに, キャッシュ装置が個々に独立して動作している限り, 書き込まれたキ ャッシュデ一夕が単一障害により失われ, 回復不能となる問題は依然解決されな いままである。 In addition, as long as the cache devices operate independently, The problem of irreparable loss of a single crash due to a single failure remains unresolved.
これに対し, 複数のキヤヅシュ装置間で書き込まれたデータの整合性を保つ方 法がある。  On the other hand, there is a method to maintain the consistency of data written between multiple cache devices.
この整合性を保つ一般的な方法は, トークンを使用するものである。 これは複 数のキヤヅシュ装置間でトークンと呼ばれる情報を通信し合い, 排他制御によつ てデータの一貫性を保証するものである。 しかし, トークン制御は, メッセ一ジ コスト (ト一クンの通信コスト) が高くなり, ト一クンの通信時間のため, 比較 的多くの時間を要する。 したがって, この方法は, キャッシュ装置のように処理 速度の向上のために設けられた装置では, 逆にボトルネックとなりかねないとい う問題を抱えている。  A common way to maintain this consistency is to use tokens. In this method, information called a token is communicated between multiple cache devices, and data consistency is guaranteed by exclusive control. However, token control requires a relatively large amount of time due to the high message cost (token communication cost) and the communication time of the token. Therefore, this method has the problem that it may be a bottleneck in devices provided for improving processing speed, such as cache devices.
また, 複数のキャッシュ装置間で共用されるメモリを使用し, このメモリ上で 排他制御を行うシステムがある。 このような共用メモリを使用するキャッシュ装 置は, 共用しているキャッシュメモリ装置とその管理部に障害が発生すると, キ ャヅシュデ一夕が失われるという問題を抱えている。 また, キャッシュメモリに 揮発性メモリを使用した場合には, 電源障害によってもデータが失われる可能性 がある。 このため, 不揮発性メモリを使用する必要があるが, その分コストが高 くなるという問題がある。  There are also systems that use memory shared by multiple cache devices and perform exclusive control on this memory. A cache device that uses such a shared memory has the problem that the cache memory is lost if a failure occurs in the shared cache memory device and its management unit. If volatile memory is used as the cache memory, data may be lost due to a power failure. For this reason, it is necessary to use a non-volatile memory, but there is a problem that the cost increases accordingly.
このように, キャッシュ装置を利用する場合には, 書き込まれたデ一夕に対す る一貫性および透過性が保持される必要があるにも関わらず, 既存の多くの方法 は, 高いコストを要する等の問題を有する。 発明の開示  Thus, when using a cache device, many existing methods are expensive, despite the need to maintain consistency and transparency over the written data. Etc. Disclosure of the invention
本発明は, 単一のキヤッシュ装置におけるボトルネヅクを解消することを目的 とする。  An object of the present invention is to eliminate bottlenecks in a single cache device.
また, 本発明は, キャッシュ装置の障害発生時にも, キャッシュ装置に記憶さ れたデ一夕の喪失を防止することを目的とする。  Another object of the present invention is to prevent loss of data stored in a cache device even when a failure occurs in the cache device.
本発明によるキャッシュ装置は, 2つのキャッシュ装置を有し, アクセスホス トまたは 2次記憶装置から与えられるデータを記憶するとともに, 前記アクセス ホストからのデ一夕を前記 2次記憶装置に記憶させるキヤヅシュシステムにおけ る各キャッシュ装置であって, 前記アクセスホストから与えられる第 1のデータ を入力するデータ入力部と, 他方のキャッシュ装置が前記アクセスホストから入 力し, 自キャッシュ装置に送信した第 2のデータを受信するデ一夕受信部と, 前 記第 1のデ一夕および前記第 2のデ一夕の双方またはいずれか一方を記憶するキ ャヅシュ記憶部と, 前記キャッシュ記憶部を管理するキャッシュ管理部と, 前記 第 1のデータを前記他方のキヤヅシュ装置に送信するデ一夕送信部と, 前記第 1 のデータまたは前記第 2のデータを前記 2次記憶装置に出力するデータ出力部と , を有する。 The cache device according to the present invention has two cache devices, stores data provided from an access host or a secondary storage device, and A cache device in a cache system for storing data from a host in the secondary storage device, wherein the data input unit inputs first data provided from the access host; A data receiving unit for receiving the second data input from the access host by the device and transmitted to its own cache device, and / or the first data and / or the second data. A cache storage unit that stores one of the cache units; a cache management unit that manages the cache storage unit; a data transmission unit that transmits the first data to the other cache device; And a data output unit for outputting the second data to the secondary storage device.
本発明によるキャッシュシステムは, 2つのキャッシュ装置を有し, アクセス ホストまたは 2次記憶装置から与えられるデ一夕を記憶するとともに, 前記ァク セスホストからのデ一夕を前記 2次記憶装置に記憶させるキヤッシュシステムで あって, 前記 2つのキャッシュ装置のそれそれは, 前記アクセスホストから与え られる第 1のデータを入力するデータ入力部と, 他方のキャッシュ装置が前記ァ クセスホストから入力し, 自キャッシュ装置に送信した第 2のデータを受信する データ受信部と, 前記第 1のデ一夕および前記第 2のデータの双方またはいずれ か一方を記憶するキヤヅシュ記憶部と, 前記キヤヅシュ記憶部を管理するキヤッ シュ管理部と, 前記第 1のデ一夕を前記他方のキヤヅシュ装置に送信するデ一夕 送信部と, 前記第 1のデータまたは前記第 2のデータを前記 2次記憶装置に出力 するデータ出力部 , を有する。  A cache system according to the present invention has two cache devices, stores data provided from an access host or a secondary storage device, and stores data from the access host in the secondary storage device. A cache input system for inputting first data provided from the access host; and a cache input device for inputting the other data from the access host. A data receiving unit that receives the second data transmitted to the host; a cache storage unit that stores the first data and / or the second data; and a cache that manages the cache storage unit. A cache management unit; a data transmission unit for transmitting the first data to the other cache device; A data output unit that outputs the first data or the second data to the secondary storage device.
本発明によるキャッシュ方法は, 2つのキャッシュ装置を有し, アクセスホス トまたは 2次記憶装置から与えられるデ一夕を記憶するとともに, 前記アクセス ホストからのデ一夕を前記 2次記憶装置に言己憶させるキヤヅシュシステムにおけ るキャッシュ方法であって, 前記アクセスホストからデータを受信した一方のキ ャヅシュ装置は, 該デ一夕を自装置のキャッシュメモリに記憶するとともに, 該 データを他方のキャッシュ装置に送信し, 前記他方のキャッシュ装置は, 前記一 方のキャッシュ装置から送信された前記デ一夕を受信して, 自装置のキャッシュ メモリに記憶し,前記一方のキヤヅシュ装置または前記他方のキヤヅシュ装置は, 前記データを前記 2次記憶装置に出力するものである。 本発明によると, キャッシュシステムに 2つのキヤヅシュ装置が設けられる。 各キャッシュ装置は, アクセスホストから 2次記憶装蘆に記憶されるべきデ一夕 を入力し, 2次記憶装置に出力 (記憶) する。 したがって, キャッシュ装置が 1 つの場合に対して, 2倍の処理能力を得ることができ, キャッシュ装置が単一の 場合のボトルネックを角 ¥消することができる。 A cache method according to the present invention has two cache devices, stores data provided from an access host or a secondary storage device, and stores data from the access host in the secondary storage device. A cache method in a cache system for remembering, wherein one cache device receiving data from the access host stores the data in its own cache memory and stores the data in the other cache device. The other cache device receives the data transmitted from the one cache device, stores the data in its own cache memory, and stores the one cache device or the other cache device. The cache device outputs the data to the secondary storage device. According to the present invention, two cache devices are provided in the cache system. Each cache device inputs the data to be stored in the secondary storage device from the access host and outputs (stores) the data to the secondary storage device. Therefore, it is possible to obtain twice the processing capacity of a single cache device and eliminate the bottleneck of a single cache device.
また, 本発明によると, アクセスホストからデ一夕を入力された一方のキヤッ シュ装置は, データを自装置のキャッシュメモリに記憶するとともに, 他方のキ ャヅシュ装置に, 入力されたデ一夕を送信する。 他方のキャッシュ装置は, 一方 のキャッシュ装置から送信されたデ一夕を, 自装置のキャッシュメモリに記憶す る。 これにより, キャッシュシステムにおけるデ一夕の不揮発化が達成される。 したがって, デ一夕が 2次言己憶装置に記憶されていない状態において, 一方のキ ャッシュ装置に障害が発生しても, 他方のキヤッシュ装置からデ一夕を得ること ができ, 障害によるデータの喪失が防止される。  Further, according to the present invention, one of the cache devices that has received the data from the access host stores the data in its own cache memory, and transmits the data that has been input to the other cache device. Send. The other cache device stores the data sent from one cache device in its own cache memory. As a result, non-volatile memory in the cache system is achieved overnight. Therefore, even if a failure occurs in one of the cache devices in a state where the data is not stored in the secondary memory device, the data can be obtained from the other cache device, and the data due to the failure can be obtained. Loss is prevented.
好ましくは, 前記データ入力部が前記第 1のデ一夕を入力してから前記デ一夕 送信部が前記第 1のデータの送信を完了するまでに, 前記データ受信部が前記第 2のデ一夕を受信した場合には, 前記第 1のデータおよび前記第 2のデ一夕の双 方の前記 2次記憶装置上のアドレス範囲と, 双方のデータの内容とに基づいて, 前記第 1のデータおよび前記第 2のデータの衝突の有無を判断する衝突検出部と, 前記衝突検出部が衝突を検出すると, 衝突が発生したことを示す衝突検出メッセ —ジを前記他方のキャッシュ装置に送信する衝突検出メッセージ送信部と, 前記 他方のキヤヅシュ装置からの前記衝突検出メヅセージを受信する衝突検出メヅセ ージ受信部と, をさらに有する。  Preferably, after the data input unit inputs the first data and before the data transmission unit completes the transmission of the first data, the data receiving unit transmits the second data. When the first data is received, the first data and the second data are used, and based on the address range on the secondary storage device and the contents of both data, the first data and the second data are used. A collision detection unit that determines the presence or absence of a collision between the first data and the second data; and when the collision detection unit detects a collision, transmits a collision detection message indicating that a collision has occurred to the other cache device. And a collision detection message receiving unit that receives the collision detection message from the other cache device.
また, 前記衝突検出部は, 前記衝突検出メヅセージ受信部が前記他方のキヤヅ シュ装置から前記衝突検出メッセージを受信した場合も衝突を検出する。  The collision detection unit also detects a collision when the collision detection message receiving unit receives the collision detection message from the other cache device.
これにより, 同一アドレス範囲の内容の異なる 2つのデータが, それそれ, ァ クセスホストから双方のキャッシュ装置に受信された場合であっても, これら 2 つのデ一夕の衝突を検出することができる。  This makes it possible to detect a collision between these two data even if two caches with different contents in the same address range are received from the access host. .
衝突が検出された場合には, 前記キヤヅシュ管理部は, 前記第 1のデ一夕およ び前記第 2のデ一夕のうち, あらかじめ定められた優先順位に基づいて優先され るデータを有効なものとして取り扱い, 他方を無効なものとして取り扱うことが できる。 When a collision is detected, the cache management unit gives priority to the first data and the second data based on a predetermined priority. Can be treated as valid and the other as invalid.
あるいは, 衝突が検出された場合には, 前記キャッシュ管理部は, 前記第 1の データが前記データ入力部に入力された時刻および前記第 2のデ一夕が前記他方 のキャッシュ装置のデ一夕入力部に入力された時刻のうち, 早い時刻を有するデ Alternatively, when a collision is detected, the cache management unit may determine that the time at which the first data was input to the data input unit and the second data are the data of the other cache device. Among the times input to the input unit, the data with the earlier time
—夕を有効なものとして取り扱い, 遅い時刻を有するデ一夕を無効なものとして 取り扱うこともできる。 —Even if the evening is treated as valid, a night with a late time can be treated as invalid.
さらに, 衝突が検出された場合には, キャッシュ装置は, ランダムな時間の経 過後に, 前記第 1のデ一夕, または, 前記第 1のデ一夕の再送を示す再送メッセ —ジを送信するデ一夕ノメッセージ再送部と, 前記他方のキャッシュ装置の前記 デ一夕/メッセージ再送部から送信された前記第 2のデ一夕または前記第 2のデ Further, when a collision is detected, the cache device transmits, after a lapse of a random time, the first data or a retransmission message indicating the retransmission of the first data. The second data or the second data transmitted from the data / message retransmitting unit of the other cache device.
—夕の再送メヅセージを受信するデ一夕/メッセージ受信部と, をさらに有し, 前記キャッシュ管理部は, 前記デ一夕/メッセージ再送部による再送時刻と, 前 記データ/メヅセージ受信部による受信時刻とのうち, 早い時刻に対応するデ一 夕を有効なものとして取り扱い, 遅い時刻に対応するデータを無効なものとして 取り扱うこともできる。 A cache / message receiving unit for receiving an evening retransmission message, the cache management unit including: a retransmission time by the data / message retransmission unit; and a reception by the data / message receiving unit. Of the times, the data corresponding to the earlier time can be treated as valid, and the data corresponding to the later time can be treated as invalid.
これらのいずれかにより, 衝突状態を解消でき, 2つのキャッシュ装置間での データの一貫性および透過性を確保することができる。  Either of these can resolve the collision condition and ensure data consistency and transparency between the two cache devices.
好ましくは, 前記デ一夕送信部は, 前記第 1のデ一夕とともに, 該第 1のデ一 夕の前記 2次記憶装置への出力をいずれのキャッシュ装置が行うかを示す第 1の フラッシュ権限情報を送信し,前記データ受信部は,前記第 2のデ一夕とともに, 該第 2のデ一夕の前記 2次記憶装置への出力をいずれのキヤッシュ装置が行うか を示す第 2のフラッシュ権限情報を受信し, 前記デ一夕出力部は, 前記第 1のフ ラッシュ権限情報が自キヤヅシュ装置を示している場合には, 前記第 1のデ一夕 を前記 2次記憶装置に出力し, 前記第 2のフラッシュ権限情報が自キャッシュ装 置を示している場合には, 前記第 2のデ一夕を前記 2次記憶装置に出力する。 これにより, 2つのキャッシュ装置間で負荷分散を行うことができる。  Preferably, the data transmission unit includes, together with the first data, a first flash indicating which cache device outputs the first data to the secondary storage device. The data receiving unit transmits authority information, and the data receiving unit indicates, with the second data, which cache device outputs the second data to the secondary storage device. Receiving the flash right information, and outputting the first data to the secondary storage device when the first flash right information indicates the self-cache device; If the second flush right information indicates the own cache device, the second flush right is output to the secondary storage device. This allows load balancing between the two cache devices.
好ましくは, キャッシュ装置は, 他方のキャッシュ装置の障害発生を監視し, 該障害発生を検出すると, 前記キヤツシュ記憶部に記憶された前記第 1のデ一夕 のうち, 前記データ出力部または他方のキヤッシュ装置のデ一夕出力部が前記 2 次記憶装置への出力を完了しておらず, かつ, 前記データ送信部が他方のキヤッ シュ装置への送信を完了したもの, および, 前記キャッシュ記憶部に記憶された 前記第 2のデータのうち, 前記データ出力部または他方のキヤヅシュ装置のデ一 夕出力部が前記 2次記憶装置への出力を完了していないものを, 前記デ一夕出力 部が前記 2次記憶装置に出力するように制御する障害監視部をさらに有する。 これにより, 一方のキャッシュ装置に障害が発生した場合にも, キャッシュ装 置に存在し, 2次記憶装置に存在しないデータを, 2次記憶装置に確実にフラッ シュ (記憶) させることができる。 図面の簡単な説明 Preferably, the cache device monitors the occurrence of a fault in the other cache device, and upon detecting the occurrence of the fault, the first data stored in the cache storage unit. Of the above, the data output unit or the data output unit of the other cache device has not completed the output to the secondary storage device, and the data transmission unit does not transmit the data to the other cache device. Of the completed data and the second data stored in the cache storage unit, wherein the data output unit or the data output unit of the other cache device has completed output to the secondary storage device. A fault monitoring unit that controls the data output unit to output the missing data to the secondary storage device. As a result, even if a failure occurs in one of the cache devices, data that exists in the cache device but does not exist in the secondary storage device can be reliably flushed (stored) in the secondary storage device. BRIEF DESCRIPTION OF THE FIGURES
図 1は, 本発明の一実施の形態によるキヤヅシュシステムを使用した 2次記憶 装置アクセスシステムの全 成を示すプロック図である。  FIG. 1 is a block diagram showing the overall configuration of a secondary storage device access system using a cache system according to an embodiment of the present invention.
図 2は,キャッシュ管理部により保持されるキャッシュ制御表の構成例を示す。 図 3は, メッセ一ジ通信部間で通信される制御メッセージのデータ構造例を示 す。  FIG. 2 shows a configuration example of a cache control table held by the cache management unit. Figure 3 shows an example of the data structure of a control message communicated between message communication units.
図 4は, アクセスホストから送信された記憶データの 2次記憶装置群への書き 込み処理の流れを示すシ一ケンス図である。  Figure 4 is a sequence diagram showing the flow of the process of writing storage data sent from the access host to the secondary storage device group.
図 5 Aから図 5 Cは, 両キヤッシュ装置間で衝突が発生した場合の衝突検出の 処理の流れを示すシーケンス図である。  Figures 5A to 5C are sequence diagrams showing the flow of the collision detection process when a collision occurs between both cache devices.
図 6は, 負荷分散が行われた場合の記憶データの書き込み処理の流れを示すシ 一ケンス図である。  Figure 6 is a sequence diagram showing the flow of storage data write processing when load distribution is performed.
図 7 Aから図 7 Eは, 2つの記憶データのァドレス範囲が重なる場合を示す。 発明を実施するための最良の形態 '  FIGS. 7A to 7E show a case where the address ranges of the two stored data overlap. BEST MODE FOR CARRYING OUT THE INVENTION ''
図 1は, 本発明の一実施の形態によるキャッシュシステムを使用した 2次記憶 装置アクセスシステムの全 成を示すブロック図である。 この 2次記憶装置ァ クセスシステム (以下, 単に 「アクセスシステム」 という。 ) は, キャッシュシ ステム 3 , アクセスホスト群 4, 2次記憶装置群 5 , アクセスネットワーク 6 , およびストレ一ジネットワーク 7を備えている。 FIG. 1 is a block diagram showing the overall configuration of a secondary storage device access system using a cache system according to an embodiment of the present invention. This secondary storage device access system (hereinafter simply referred to as “access system”) consists of a cache system 3, an access host group 4, a secondary storage device group 5, an access network 6, And a storage network 7.
キャッシュシステム 3は, 2つのキャッシュ装置 1および 2を有する。 キヤヅ シュ装置 1および 2は, ともに同じ構成を有する。 キャッシュ装置 1は, キヤッ シュ管理部 1 1 , キヤヅシュメモリ 1 2, 入出力部 1 3および 14, メッセージ 通信部 1 5, ならびに障害監視部 1 6を有する。 キャッシュ装置 2は, キヤヅシ ュ管理部 2 1 , キャッシュメモリ 22, 入出力部 23および 24, メッセージ通 信部 2 5, ならびに障害監視部 2 6を有する。  The cache system 3 has two cache devices 1 and 2. Cache devices 1 and 2 have the same configuration. The cache device 1 includes a cache management unit 11, a cache memory 12, input / output units 13 and 14, a message communication unit 15, and a failure monitoring unit 16. The cache device 2 has a cache management unit 21, a cache memory 22, input / output units 23 and 24, a message communication unit 25, and a failure monitoring unit 26.
アクセスホスト群 4は, n個 (nは 2以上の整数) のアクセスホスト 4 i〜4 n を有する。 各アクセスホストは, キャッシュシステム 3を介して 2次記憶装置群 5にデ一夕 (以下「記憶デ一夕 (storage data)」 という。 ) を書き込み, また, 2次記憶装置群 5 (またはキャッシュシステム 3) に記憶された記憶デ一夕をキ ャヅシュシステム 3を介して読み出す。 各アクセスホストは, たとえばコンビュ —夕により構成される。 Access Host group 4, n (n is an integer of 2 or more) having an access host 4 I~4 n of. Each access host writes data (hereinafter referred to as “storage data”) to the secondary storage device group 5 via the cache system 3, and writes the data to the secondary storage device group 5 (or cache storage device 5). The stored data stored in the system 3) is read out via the cache system 3. Each access host is composed of, for example, a convenience store.
2次記憶装置群 5は, アクセスホスト群 4の各アクセスホストにより共用され る 2次記憶装置であり, m個 (mは 2以上の整数) の 2次記憶装置 5 5 mを有 する。 各 2次記憶装置には, それそれを一意に識別するための装置番号 (たとえ ばシリアル番号) が付されており, アクセスホスト群 4およびキャッシュシステ ム 3は, この装置番号を指定することにより, 2次記憶装置群 5の 1つの 2次記 憶装置を特定でき, さらにアドレス (またはプロック番号) を指定することによ り, 特定された 2次記憶装置上の記憶デ一夕を特定できる。 各 2次記憶装置は, たとえばハードディスク, 光磁気ディスク (MO) , 光ディスク (たとえば DV D-RAM) 等により構成される。 Secondary storage device group 5 is a secondary storage device that will be shared by the access host access host group 4, m pieces (m is an integer of 2 or more) have a secondary storage device 5 5 m of. Each secondary storage device is assigned a device number (for example, a serial number) to uniquely identify it, and the access host group 4 and the cache system 3 can specify this device number by specifying this device number. , One secondary storage device in the secondary storage device group 5 can be specified, and by specifying the address (or block number), the storage data on the specified secondary storage device can be specified. . Each secondary storage device is composed of, for example, a hard disk, a magneto-optical disk (MO), and an optical disk (for example, DV D-RAM).
アクセスネットワーク 6は, たとえば S C S Iネットワーク, ファイバチヤネ ル (fibre channel) , LAN (イーサネット) 等により構成される。 ストレ一ジ ネットワーク 7は, たとえばファイバチャネルにより構成されている。  The access network 6 includes, for example, an SCS I network, a fiber channel, a LAN (Ethernet), and the like. The storage network 7 is composed of, for example, Fiber Channel.
アクセスホスト i An, キャッシュ装置 1の入出力部 1 3, およびキヤヅシ ュ装置 2の入出力部 23は, アクセスネットワーク 6に接続されている。 これに より, アクセスホスト 4 !-4^^:, アクセスネットワーク 6を介して, キヤヅシ ュ装置 1または 2に記憶デ一夕を送信し, また, キャッシュ装置 1または 2から 記憶デ一夕を受信することができる。 The access host i An, the input / output unit 13 of the cache device 1, and the input / output unit 23 of the cache device 2 are connected to the access network 6. As a result, the stored data is transmitted to the cache device 1 or 2 via the access host 4! -4 ^^: and the access network 6, and transmitted from the cache device 1 or 2. You can receive the stored data overnight.
また, 2次記' IS装置 5 i〜 5 m, キャッシュ装置 1の入出力部 14, およびキヤ ヅシュ装置 2の入出力部 24は, ストレ一ジネヅトワーク 7に接続されている。 これにより,キャッシュ装置 1および 2は,ストレ一ジネヅトワーク 7を介して, 2次記憶装置群 5に記憶デ一夕を送信し (書き込み) , また, 2次記憶装置群 5 から Ϊ3憶データを受信する (読み出す) ことができる。 In addition, the IS device 5 i to 5 m , the input / output unit 14 of the cache device 1 and the input / output unit 24 of the cache device 2 are connected to the storage network 7. As a result, the cache devices 1 and 2 transmit (write) the storage data to the secondary storage device group 5 via the storage network 7, and receive the storage data from the secondary storage device group 5. Yes (read).
キャッシュ装置 1および 2は, それそれ独立して構成され, 一方の障害が他方 に影響しないようになっている。 キャッシュ装置 1および 2が独立してアクセス ホスト群 4からの入出力を受け付けることにより, 後述するように, 記憶デ一夕 の透過性 (transparency) を保ちながら, 1つのキヤヅシュ装置の 2倍の性能を 得ることが可能となる。  Cache devices 1 and 2 are configured independently of each other, so that one fault does not affect the other. As described later, the cache devices 1 and 2 independently receive I / O from the access host group 4 and maintain twice the performance of one cache device while maintaining the transparency of the storage device. Can be obtained.
入出力部 13 (23) (括弧内の符号はキャッシュ装置 2における対応する構 成要素を示す。 以下同じ。 ) は, アクセスネットワーク 6を介して送受信される 記憶データに対してプロトコル処理等の通信処理を実行する。 また, 入出力部 1 4 (24) は, ストレージネヅトワーク 7を介して送受信される記憶データに対 · して通信処理を実行する。  The input / output unit 13 (23) (codes in parentheses indicate corresponding components in the cache device 2. The same applies to the following.) Is for communication such as protocol processing for stored data transmitted and received via the access network 6. Execute the process. In addition, the input / output unit 14 (24) executes communication processing for stored data transmitted and received via the storage network 7.
キャッシュメモリ 12 (22) は, 2次記憶装置群 5の 2次記憶装置よりも高 速にアクセス (読み出しおよび書き込み) が可能な記憶デバイス (RAM等) に より構成される。  The cache memory 12 (22) is composed of a storage device (RAM, etc.) that can access (read and write) faster than the secondary storage devices of the secondary storage device group 5.
キャッシュ管理部 1 1 (21) は, キャッシュ制御表 (後述) を保持し, キヤ ヅシュメモリ 12 (22) に記憶されている記憶デ一夕をキャッシュ制御表に基 づいて管理する。 また, キヤヅシュ管理部 1 1 (21) は, 入出力部 13 (23) および 14 (24) , 障害監視部 16 (26) , ならびにメッセ一ジ通信部 15 (25) を制御し, 入出力部 13 (23) もしくは 14 (24) またはメッセ一 ジ通信部 15 (25)から入力される記憶デ 夕のキャッシュメモリ 12 (22) への書き込みや入出力部からの送信, キャッシュメモリ 12 (22) から読み出 した記憶データの入出力部 13 (23) または 14 (24) を介した送信, 他方 のキヤヅシュ装置との間の制御メヅセージおよび記憶データのメッセージ通信部 15 (25) を介した送受信等を行う。 図 2は, キャッシュ管理部 1 1 ( 2 1 ) により保持されるキャッシュ制御表の 構成例を示している。 キヤヅシュ制御表は, キャッシュメモリ 1 2用のものと, キャッシュメモリ 2 2用のものとがそれそれ設けられ, 前者はキャッシュ管理部 1 1により, 後者はキャッシュ管理部 2 1により, それそれ保持される。 The cache management unit 11 (21) holds a cache control table (described later), and manages the storage data stored in the cache memory 12 (22) based on the cache control table. The cache management unit 11 (21) controls the input / output units 13 (23) and 14 (24), the failure monitoring unit 16 (26), and the message communication unit 15 (25). 13 (23) or 14 (24) or writing of storage data input from the message communication unit 15 (25) to the cache memory 12 (22), transmission from the input / output unit, cache memory 12 (22) Transmission of the storage data read from the I / O unit via the input / output unit 13 (23) or 14 (24), transmission / reception of the control message with the other cache device and storage data via the message communication unit 15 (25), etc. I do. Fig. 2 shows an example of the configuration of the cache control table held by the cache management unit 11 (21). The cache control table is provided for the cache memory 12 and for the cache memory 22. The cache control table is maintained by the cache management unit 11 for the former, and is retained by the cache management unit 21 for the latter. You.
キヤヅシュ制御表は, キャッシュメモリ 1 2 ( 2 2 ) に現在記憶されている各 記憶デ一夕のキャッシュ制御リストを有する。 各キヤヅシュ制御リストは, デ一 夕項目として, 要素番号, 装置番号, 装置開始アドレス, デ一夕長, キャッシュ 開始アドレス, 状態, およびフラグを有する。  The cache control table has a cache control list of each storage device currently stored in the cache memory 12 (22). Each cache control list has, as data items, an element number, a device number, a device start address, a data length, a cache start address, a status, and a flag.
「要素番号」 は, キャッシュメモリ 1 2 ( 2 2 ) に現在記憶されている記憶デ —夕の要素番号である。 ここで, 1つの要素は, アクセスホスト群 4のあるァク セスホストから書き込まれ, または, あるアクセスホストから読み出された 1ま とまりのある記憶デ一夕に対応する。 1つの要素は, 1バイ トの記憶データに対 応する場合もあるし, 複数バイトの記憶データに対応する場合もある。  The “element number” is the element number of the storage data currently stored in the cache memory 1 2 (2 2). Here, one element corresponds to a set of stored data written from or read from a certain access host in the access host group 4. One element may correspond to one byte of storage data, or may correspond to multiple bytes of storage data.
たとえば, あるアクセスホスト 4 i ( iは l〜nのいずれかの整数) から 5 1 2バイトを 1ブロックとする記憶デ一夕が送信され, キャッシュメモリ 1 2 ( 2 2 ) にこの 1ブロックの記憶データが記憶された場合には, 1つの要素が 1プロ ヅク (5 1 2バイト) の記憶デ一夕に対応することとなる。 また, 他のアクセス ホスト 4 (jは l〜nのいずれか) から 2ブロックの記憶デ一夕が送信され, キヤヅシュメモリ 1 2 ( 2 2 ) にこの 2プロヅクの記憶データが言 3憶された場合 には, 1つの要素が 2ブロックの言己憶データに対応することとなる。  For example, from a certain access host 4 i (i is an integer from l to n), a storage data with a block of 512 bytes is transmitted, and the cache memory 1 2 (2 2) stores this 1 block. When stored data is stored, one element corresponds to one block (512 bytes) of stored data. When two blocks of stored data are transmitted from another access host 4 (j is any of l to n) and the stored data of these two blocks is stored in the cache memory 12 (22). , One element corresponds to two blocks of memory.
「装置番号」 は, 記憶デ一夕が記憶されるべき 2次記憶装置群 5の 2次記憶装 置の装置番号 (たとえばシリアル番号) である。 「装置開始アドレス」 は, 対応 する装置番号の 2次記憶装置における, 記憶デ一夕の記憶開始アドレス (先頭ァ ドレス) である。 「データ長」 は, 対応する記憶デ一夕の長さ (バイト数) であ る。  The “device number” is the device number (for example, a serial number) of the secondary storage device of the secondary storage device group 5 in which the storage data is to be stored. “Device start address” is the storage start address (start address) of the storage device in the secondary storage device of the corresponding device number. “Data length” is the length (number of bytes) of the corresponding storage data.
なお, 記憶デ一夕が, 複数バイト (たとえば 5 1 2バイト) からなるブロック 単位で各 2次記憶装置から読み出され, また, 各 2次記憶装置に書き込まれる場 合には, 装置開始アドレスを, λ初のプロックが書き込まれる開始ブロック番号 とし, デ一夕長を, 最後のブロックが書き込まれる終了ブロック番号とすること もできる。 たとえば, 2ブロックの記憶データが 2次記憶装置の第 5プロックの 記憶領域および第 6プロヅクの記憶領域に記憶される場合に, 開始プロヅク番号 を 5, 終了プロック番号を 6とすることもできる。 When the storage data is read from each secondary storage device in blocks of a plurality of bytes (for example, 512 bytes) and written to each secondary storage device, the device start address is used. Let λ be the starting block number where the first block is written, and let the length be the end block number where the last block is written. Can also. For example, when two blocks of storage data are stored in the storage area of the fifth block and the storage area of the sixth block of the secondary storage device, the start block number may be 5 and the end block number may be 6.
「キャッシュ開始アドレス」 は, キャッシュメモリ 1 2 ( 2 2 ) における記憶 デ一夕の記憶開始アドレス (先頭アドレス) である。  The “cache start address” is the storage start address (start address) of the storage data in the cache memory 12 (22).
「状態」は,記憶デ一夕の状態を示し,この状態には, 「受信」 (以下" received" という。 ) , 「ダ一ティ」 (以下 "dirty" という。 ) , 「ノンボラタイル」 (以 下 "non-volatile"という。) , 「フラッシング」 (以下 "flushing" という。 ) , 「フラッシュメヅセージ」 (以下 " flushed msg" という。 ) , 「クリーン」 (以 下 "clean" という。 ) , および 「インバリディ ト」 (以下 "invalidated" とい う。 ) がある。  The “state” indicates the state of the storage device, which includes “received” (hereinafter referred to as “received”), “duty” (hereinafter referred to as “dirty”), and “non-volatile” ( Hereinafter, "non-volatile", "flushing" (hereinafter, "flushing"), "flash message" (hereinafter, "flushed msg"), "clean" (hereinafter, "clean") , And "invalidated" (hereinafter "invalidated").
received状態は, その記憶データがアクセスホストから受信され, この記憶デ —夕のコピーメッセ一ジ (後述) の送信完了までの状態, または, このコビ一メ ヅセージに対する第 1の確認応答メヅセージ (後述) が受信されるまでの状態を いう。  The received state is a state in which the stored data is received from the access host, the state until the transmission of the stored copy message (described later) is completed, or a first acknowledgment message (described later) for the copy message. ) The state until is received.
dirty状態は, その記憶デ一夕に関する第 1の確認応答メッセージが受信され た状態で,この記憶デ一夕がまだ 2次記憶装置に書き込まれていな 、状態をいう。 non-volatile状態は, 他方のキャッシュ装置から送信されたコピーメヅセージ に含まれる記憶デ一夕がキャッシュメモリに記憶され, かつ, この記憶デ一夕が まだ 2次記憶装置群には書き込まれていない状態をいう。  The dirty state refers to a state in which the first acknowledgment message regarding the stored data has been received, and the stored data has not been written to the secondary storage device. The non-volatile state is a state in which storage data included in a copy message transmitted from the other cache device is stored in the cache memory, and this storage data has not yet been written to the secondary storage device group. Say.
flushing状態は, dirty状態とは異なり, その記憶デ一夕が 2次記憶装置群に 書き込まれている間の状態をいう。  The flushing state differs from the dirty state in that the storage data is being written to the secondary storage device group.
flushed msg状態は, その記憶デ一夕の 2次記憶装置への書き込み (フラッシ ュ) が完了し, 他方のキャッシュ装置に記憶されている同じ記憶デ一夕の状態を non-volatile状態から clean状態へ変更させるように他方のキヤヅシュ装置にフ ラッシュメッセージ (後述) が通知されている状態をいう。  The flushed msg state changes from the non-volatile state to the clean state when the same storage data stored in the other cache device has been completely written to the secondary storage device (flash). This is the state in which a flash message (described later) is notified to the other cache device so as to change to the other cache device.
clean状態は, その記憶デ一夕の 2次記憶装置への書き込みが終了し, 他方の キャッシュ装置へのその旨の通知が終了した状態をいう。 この状態では, キヤヅ シュメモリ 1 2 ( 2 2 ) に記憶された記憶デ一夕は, いつでも上書き, 消去等の 廃棄可能な状態にあるが, アクセスホスト群 4からのこの記憶^一夕の読み出し に備えてキャッシュメモリ 1 2 ( 2 2 ) に記憶されている。 The clean state refers to the state in which writing to the secondary storage device in the storage device has been completed and notification to that effect to the other cache device has been completed. In this state, the data stored in the cache memory 12 (22) can be overwritten or deleted at any time. Although it can be discarded, it is stored in the cache memory 1 2 (2 2) in preparation for reading out this memory from the access host group 4 overnight.
invalidated状態は, その記憶デ一夕が, clean状態の後, 無効化された状態を いう。 この状態にある記憶デ一夕には, その後, 直ちに, または, 所定の時間の 経過後, 上書き, 消去等の廃棄処理がなされる。  The invalidated state is a state in which the stored data has been invalidated after the clean state. In the storage device in this state, discard processing such as overwriting and erasing is performed immediately or after a predetermined time has elapsed.
「フラグ」 は, フラッシュ権限の有無, 書き込みが衝突状態であるかどうか, アクセスホストへ既にホスト確認応答メヅセージ(ACK)を返信したか等を示す。 フラッシュ権限の有無, 書き込みの衝突状態, および確認応答メッセ一ジについ ては, 後述する。  The “flag” indicates whether or not the flash is authorized, whether or not writing is in a collision state, whether or not a host acknowledgment message (ACK) has already been returned to the access host. The presence / absence of the flash authority, the write collision status, and the acknowledgment message will be described later.
キャッシュ管理部 1 1 ( 2 1 ) は, アクセスホスト群 4または 2次記憶装置群 5からデ一夕を受信し, 処理する際に, 自己が保持するキヤヅシュ制御表を参照 し, 処理の結果, 必要に応じてキャッシュ制御表の内容を更新する。  When the cache management unit 11 (21) receives the data from the access host group 4 or the secondary storage device group 5 and processes it, the cache management unit 11 (21) refers to the cache control table held by itself, and as a result of the processing, Update the contents of the cache control table as needed.
メッセージ通信部 1 5および 2 5は, 通信回線 Lにより相互に接続され, 記憶 デ一夕,制御メッセージ等を相互に送受信する。両者を接続する通信回線 Lには, たとえば P C Iノ、'ス (Peripheral Component Interconnect Bus) , ギガビット イーサネット等が使用され, その通信速度はアクセスネットワーク 6よりも高速 であることが好ましい。  The message communication units 15 and 25 are connected to each other by a communication line L, and send and receive storage messages and control messages to and from each other. As the communication line L connecting the two, for example, PCI, Peripheral Component Interconnect Bus, Gigabit Ethernet, or the like is used, and its communication speed is preferably higher than that of the access network 6.
図 3は, メヅセージ通信部 1 5と 2 5との間で通信される制御メッセ一ジのデ —夕構造例を示している。制御メヅセージは,制御情報が格納されるヘッダ部と, 記憶デ一夕が格納されるデ一夕部とを有する。ヘッダ部には,タイプ,装置番号, 装置開始アドレス, デ一夕長, シーケンス番号, 状態, およびフラッシュ権限の データ項目が置かれる。  Fig. 3 shows an example of the structure of a control message transmitted between the message communication units 15 and 25. The control message has a header section in which control information is stored and a data section in which stored data is stored. The header contains data items of type, device number, device start address, data length, sequence number, status, and flash authority.
「タイプ」 は, 御メッセージのタイプである。 このタイプには, コピーメヅ セージを表す "COPY" , コピ一メヅセージに対する確認応答メッセージ (第 1 の確認応答メッセ一ジ) を表す "C-ACK" , フラッシュメッセージを表す "FLUSHED" , フラッシュメッセ一ジに対する確認応答メヅセージ (第 2の確 認応答メヅセージ)を表す" F-ACK" ,衝突検出メヅセージを表す" COLLISION", 衝突検出メッセージに対する確認応答メヅセージ (第 3の確認応答メヅセージ) を表す "COL-ACK" , 障害監視メッセージを表す "MONITOR"等がある。 こ れらの各制御メヅセージについては後述する。 “Type” is the type of the message. This type includes "COPY" indicating a copy message, "C-ACK" indicating an acknowledgment message (first acknowledgment message) for a copy message, "FLUSHED" indicating a flash message, and a flash message. "F-ACK" indicating the acknowledgment message (second acknowledgment message), "COLLISION" indicating the collision detection message, and "COL-" indicating the acknowledgment message (third acknowledgment message) for the collision detection message ACK "and" MONITOR "indicating a failure monitoring message. This Each of these control messages will be described later.
「装置番号」 は, コピーメヅセージの場合には, デ一夕部に付与される記憶デ The “device number” is the storage data added to the data section in the case of a copy message.
—夕が記憶される 2次記憶装置の装置番号, フラッシュメヅセージの場合には, フラヅシュされた記憶デ一夕が記憶された 2次記憶装置の装置番号, 衝突検出メ ヅセージの場合には, 衝突が検出された記憶データが記憶される 2次記憶装置の 装置番号, 確認応答メッセージの場合には, 対応するコピーメヅセージ, フラヅ シュメヅセージ, 衝突検出メヅセージ等の装置番号と同じ装置番号である。 —The device number of the secondary storage device where the evening is stored, in the case of a flash message, the device number of the secondary storage device in which the flashed storage device is stored, and in the case of a collision detection message, In the case of an acknowledgment message, the device number is the same as the device number of the corresponding copy message, flash message, collision detection message, etc.
「装置開始アドレス」 は, コピーメッセージの場合には, データ部に付与され る記憶デ一夕が言 3憶される 2次記憶装置の開始ァドレス, フラッシュメヅセージ の場合には, フラッシュされた記憶^—夕が記憶された 2次記憶装置の開始ァド レス, 衝突検出メッセージの場合には, 衝突が検出された記憶デ一夕が記憶され る 2次記憶装置の開始アドレス, 確認応答メヅセージの場合には, 対応するコピ ーメヅセージ, フラッシュメッセ一ジ, 衝突検出メヅセージ等の閧始アドレスと 同じ開始アドレスである。  The “device start address” is the start address of the secondary storage device that stores the storage data added to the data section in the case of a copy message, and the flashed storage in the case of a flash message. ^ —The start address of the secondary storage device where the evening is stored, and in the case of a collision detection message, the start address of the secondary storage device where the storage location where the collision is detected is stored, and the acknowledgment message In this case, the start address is the same as the start address of the corresponding copy message, flash message, collision detection message, and the like.
「デ一夕長」 は, コビ一メヅセージの場合には, データ部に付与される記憶デ —夕の長さ (バイト数, プロック数等) , フラッシュメッセージの場合には, フ ラッシュされた記憶データの長さ, 衝突検出メッセージの場合には, 衝突が検出 された記憶デ一夕の長さである。 確認応答メッセージのデ一夕長の値は 0とされ る。  The “delivered length” is the storage data added to the data section in the case of a copy message—the length of the evening (number of bytes, blocks, etc.), and the flashed memory in the case of a flash message. In the case of a collision detection message, this is the length of the stored data at which the collision was detected. The value of the data length of the acknowledgment message is set to 0.
「状態」 は, 前述したキャッシュ制御表における状態と同一のデータである。 「シーケンス番号」 は, 送信される制御メッセージに付されるシリアル番号であ る。 キャッシュ管理部 1 1および 2 1は, それそれ自己が送信する制御メヅセ一 ジに,たとえば 1から始まるシリアル番号を送信する順序に従って順に付与する。 これにより, 送信する制御メヅセージの時間 jl匿序を明らかにすることができる。 したがって, 受信側のキャッシュ管理部 1 1 ( 2 1 ) は, 受信される制御メッセ ージのシーケンス番号を管理しておくことにより, 制御メヅセージの受信順序順 が送信順序と異なっていても, 送信順序を正確に知ることができる。  “Status” is the same data as the status in the cache control table described above. “Sequence number” is the serial number assigned to the transmitted control message. Each of the cache management units 11 and 21 sequentially assigns a serial number starting from 1, for example, to the control message transmitted by itself in accordance with the transmission order. This makes it possible to clarify the time jl order of the control message to be transmitted. Therefore, the cache management unit 11 (21) on the receiving side manages the sequence numbers of the control messages to be received, so that the transmission order of the control messages is different from the transmission order even if the reception order is different from the transmission order. You can know the order exactly.
「フラッシュ権限」 は, フラッシュ (キャッシュメモリ 1 2 ( 2 2 ) に記憶さ れた記憶デ一夕を 2次記憶装置に記憶する処理) を行うキヤッシュ装置が, キヤ ヅシュ装置 1であるか 2であるかを示す。フラッシュ権限を指定しない場合には, この領域は,キャッシュ装置 1および 2を示す値以外の値(たとえば Nu l 1等) に さflる。 The “flash authority” is defined as a cache device that performs a flash (a process of storing the stored data stored in the cache memory 12 (22) in a secondary storage device). Shows whether the device is 1 or 2. If the flush authority is not specified, this area is set to a value other than the value indicating cache devices 1 and 2 (for example, Null 1).
障害監視部 1 6 ( 2 6 ) は, 他方のキャッシュ装置の障害を監視し, 障害を検 出した場合には,障害の回復に必要な処理を行う。たとえば,障害監視部 1 6 ( 2 6 )は, 一定時間間隔ごとに障害検出メッセージをメヅセージ通信部 1 5 ( 2 5 ) を介して相互に送受信し合う。 そして, 一方の障害監視部は, 他方の障害監視部 からの障害検出メヅセージを, 所定の時間を経過しても受信しない場合には, 他 方のキャッシュ装置に障害が発生したと判断する。  The failure monitoring unit 16 (26) monitors the failure of the other cache device, and if a failure is detected, performs the necessary processing to recover from the failure. For example, the failure monitoring units 16 (26) mutually transmit and receive failure detection messages via the message communication unit 15 (25) at regular time intervals. If one fault monitoring unit does not receive a fault detection message from the other fault monitoring unit within a predetermined time, it determines that a fault has occurred in the other cache device.
また, 障害監視部 1 6 ( 2 6 ) は, 他方のキヤヅシユ装置の障害発生を検出す ることにより, 自己が属するキャッシュ装置 1 ( 2 )のキャッシュ管理部 1 1 ( 2 1 ) により保持されるキャッシュ制御表の状態を, 必要に応じて書き換え, 障害 回復処理を実行する。 この障害回復処理の詳細については後述する。  Further, the failure monitoring unit 16 (26) detects the occurrence of a failure in the other cache device, and is held by the cache management unit 11 (21) of the cache device 1 (2) to which it belongs. Rewrites the status of the cache control table as needed, and executes failure recovery processing. Details of the failure recovery processing will be described later.
このような構成のアクセスシステムにおいて, アクセスホスト群 4は, キヤヅ シュシステム 3を介して 2次記憶装置群 5に記憶デ一夕を書き込み, また, キヤ ヅシュシステム 3を介して 2次記憶装置群 5から記憶デ一夕を読み出す。 以下, これらの書き込み処理および読み出し処理, ならびにキャッシュシステム 3の一 方のキヤッシュ装置に障害が発生した場合の障害回復処理の詳細について説明す る。  In the access system having such a configuration, the access host group 4 writes the storage data to the secondary storage device group 5 via the cache system 3, and the secondary storage device via the cache system 3. Read the stored data from group 5. The following describes the details of the write processing and the read processing, and the failure recovery processing when one of the cache devices in the cache system 3 fails.
<記憶データの書き込み処理 >  <Process of writing stored data>
アクセスホスト群 4のいずれかのアクセスホスト 4 iが, 記憶データをキヤヅ シュ装置 1または 2を介して 2次記憶装置群 5に書き込む場合の処理について以 下に説明する。  The processing when one of the access hosts 4 i of the access host group 4 writes the stored data to the secondary storage device group 5 via the cache device 1 or 2 will be described below.
図 4は, アクセスホスト 4 iから送信された記憶デ一夕の 2次記憶装置群 5へ の書き込み処理の流れを示すシーケンス図である。  FIG. 4 is a sequence diagram showing a flow of a write process to the secondary storage device group 5 in the storage device transmitted from the access host 4i.
まず, アクセスホスト 4 丄は, アクセスネヅ トワーク 6を介して記憶デ一夕を キヤヅシュ装置 1または 2に送信する。 記憶デ一夕をキヤヅシュ装置 1または 2 'のいずれに送信するかは, アクセスホスト 4 iにあらかじめ設定されている。 キ ャヅシュ装置 1または 2の一方にのみ送信するように設定されてもよいし, キヤ ヅシュ装置 1および 2に交互に送信するように設定されていてもよい。 また, ァ クセスホスト 4 が, 書き込み要求信号をキヤヅシュ装置 1および 2に送信し, キャッシュ装置 1および 2のうちアイ ドル状態にあるものが, データ受信可能メ ヅセージをアクセスホスト 4 iに返信し, これにより, 記憶デ一夕の送信を開始 してもよい (キヤヅシュ装置 1および 2の双方からデ一夕受信可能メッセージが 送信された場合には, アクセスホスト 4 iが一方を選択する) 。 以下では, ァク セスホスト 4 iからキャッシュ装置 1に記憶データが送信される場合を例にとつ て説明する。 First, the access host 4 sends the stored data to the cache device 1 or 2 via the access network 6. Whether the storage device is to be transmitted to the cache device 1 or 2 'is preset in the access host 4i. It may be set to transmit to only one of the cache devices 1 and 2, or The transmission may be set to be alternately transmitted to the hash devices 1 and 2. The access host 4 sends a write request signal to the cache devices 1 and 2, and the cache device 1 or 2 that is in the idle state returns a data receivable message to the access host 4 i . Thus, the transmission of the stored data may be started (when both the cache devices 1 and 2 transmit the data receivable message, the access host 4i selects one). The following describes an example in which stored data is transmitted from the access host 4i to the cache device 1.
アクセスホスト 4 iは, キャッシュ装置 1の入出力部 1 3に記憶デ一夕および 制御デ一夕をアクセスネットワーク 6を介して送信する。 制御データは, たとえ ば, 記憶デ一夕のへヅダとして付加されている。 この制御デ一夕には, 記憶デー 夕の記憶されるべき 2次記憶装置の装置番号, 装置開始アドレス, およびデータ 長 (以下, 装置番号, 装置開始アドレス, およびデータ長を 「アドレス範囲」 と いう。 ) が含まれている。  The access host 4 i transmits the storage data and the control data to the input / output unit 13 of the cache device 1 via the access network 6. The control data is added, for example, as a header for storing data. This control data includes the device number, device start address, and data length of the secondary storage device to be stored in the storage data (hereinafter, the device number, device start address, and data length are referred to as “address range”). ) Is included.
入出力部 1 3は, アクセスホスト 4 iから送信された制御デ一夕および記憶デ —夕をキャッシュ管理部 1 1に与える。  The input / output unit 13 gives the control data and the storage data transmitted from the access host 4 i to the cache management unit 11.
キャッシュ管理部 1 1は, アクセスホスト 4 iから送信された記憶デ一夕 (記 憶データ a ) のアドレス範囲と重なるアドレス範囲を有する記憶データ (記憶デ 一夕 b ) がキャッシュメモリ 1 2に既に記憶されているかどうかを, キャッシュ メモリ 1 2のキヤヅシュ制御表のアドレス範囲に基づいて判断する。  The cache management unit 11 stores in the cache memory 12 the storage data (storage data b) having an address range that overlaps the address range of the storage data (storage data a) transmitted from the access host 4i. Whether it is stored or not is determined based on the address range of the cache control table of the cache memory 12.
記憶データ aのアドレス範囲と重なるアドレス範囲を有する記憶デ一夕 bが存 在しない場合には, キャッシュ管理部 1 1は, 記憶デ一夕 aのキャッシュ制御リ ストを生成し,キャッシュ制御表に付カ卩する。そして,キャッシュ管理部 1 1は, 生成したキヤッシュ制御リストのキヤッシュ開始ァドレスから始まるキャッシュ メモリ 1 2のメモリセルに記憶デ一夕 aを書き込む (S 1 )。  If there is no storage data b having an address range that overlaps with the address range of the storage data a, the cache management unit 11 generates a cache control list for the storage data a and stores it in the cache control table. Add to it. Then, the cache management unit 11 writes the stored data a to the memory cell of the cache memory 12 starting from the cache start address of the generated cache control list (S1).
一方, アドレス範囲が重なる場合として,図 7 A〜図 7 Eに示すように, (1 ) 記憶デ一夕 aのアドレス範囲と記憶デ一夕 bのアドレス範囲とがまったく同一の 場合 (図 7 A) , ( 2 ) 記憶デ一夕 aのアドレス範囲が記憶デ一夕 bのアドレス 範囲を包含する場合 (図 7 B ) , ( 3 ) 記憶データ aのアドレス範囲が記憶デー 夕 bのアドレス範囲に包含される場合 (図 7 C ) , ( 4 ) 記憶デ一夕 aのァドレ ス範囲と記憶デ一夕 bのアドレス範囲とが, ともに一部重なる範囲と重ならない 範囲とを有する場合 (図 7 Dおよび図 7 E ) , がある。 On the other hand, when the address ranges overlap, as shown in Figs. 7A to 7E, (1) When the address range of the storage device a is exactly the same as the address range of the storage device b (Fig. A), (2) When the address range of storage data a includes the address range of storage data b (Fig. 7B), (3) The address range of storage data a is the storage data. (B) When the address range of the storage device (a) and the address range of the storage device (b) partially overlap with each other, (Figs. 7D and 7E).
( 1 ) の場合には, キャッシュ管理部 1 1は, その言 3憶データ bのキャッシュ 制御リストの装置番号, 装置開始アドレス等を記憶デ一夕 aのものに更新する。 あるいは, キャッシュ管理部 1 1は, 記憶デ一夕 aのキャッシュ制御リストを生 成し, キャッシュ制御表に付加するとともに, 記憶デ一夕 bのキャッシュ制御リ ストの状態を "invalidated"にするか, または, 記憶デ一夕 bのキャッシュ制御 リストを消去してもよい。 そして, キャッシュ管理部 1 1は, キャッシュ制御リ ス卜のキャッシュ開始アドレスから始まるキャッシュメモリ 1 2の領域に記憶デ —夕 aを書き込む (S 1 ) 。  In the case of (1), the cache management unit 11 updates the device number, device start address, and the like of the cache control list of the storage data b to those of the storage device a. Alternatively, the cache management unit 11 generates a cache control list for the storage device a, adds it to the cache control table, and sets the status of the cache control list for the storage device b to "invalidated". , Or the cache control list in the storage device b may be deleted. Then, the cache management unit 11 writes the stored data a to the area of the cache memory 12 starting from the cache start address in the cache control list (S1).
記憶データ aが書き込まれるキャッシュメモリ 1 2上の領域は, 記憶デ一夕 b が記憶されていたキャッシュメモリ 1 2上の領域と同一であってもよいし, 他の 空いている領域であってもよい。 前者の場合に, 記憶データ bは記憶デ一夕 aに より上書きされる。後者の場合に, 記憶デ一夕 bは, キャッシュメモリ 1 2上に は残っているものの, そのキャッシュ $IJ御リストは "invalidated"にされている か, または, キヤヅシュ制御表から消去 (上書きを含む。 ) されているので, 有 効な記憶デ一夕としては取り扱われない。したがって,記憶デ一夕 bは,その後, 他の記憶デ一夕により上書きされることとなる。 以下の (2 ) 〜 (4 ) の場合も 同様である。  The area on the cache memory 12 where the storage data a is written may be the same as the area on the cache memory 12 where the storage data b was stored, or may be another free area. Is also good. In the former case, the stored data b is overwritten by the stored data a. In the latter case, the stored data b remains in the cache memory 12 but the cache $ IJ list is set to "invalidated" or is deleted from the cache control table (overwriting is disabled). It is not treated as a valid memory. Therefore, the stored data b will be overwritten by another stored data thereafter. The same applies to the following cases (2) to (4).
( 2 ) の場合も, (1 ) の場合と同様に処理される (S 1 ) 。 したがって, 記 憶データ bのキヤヅシュ制御リストはキヤヅシュ制御表から抹消される。  In the case of (2), the same processing is performed as in the case of (1) (S1). Therefore, the cache control list of storage data b is deleted from the cache control table.
( 3 ) の場合には, キャッシュ管理部 1 1は, アドレス範囲が重なる部分につ いては, 記憶データ aのキャッシュ制御リストを生成して, キャッシュ制御表に 付加し, 記憶デ一夕 aをキャッシュメモリ 1 2に書き込む ( S 1 ) 。 また, キヤ ヅシュ管理部 1 1は, 記憶デ一夕 bのうち, 記憶デ一夕 aと重なる部分を除いた 2つの部分について, それそれキャッシュ制御リストを生成 (または更新) し, キヤヅシュ制御表に付加する。  In the case of (3), the cache management unit 11 generates a cache control list of the storage data a and adds it to the cache control table for the part where the address ranges overlap, and stores the storage data a in the cache control table. Write to the cache memory 1 2 (S 1). In addition, the cache management unit 11 generates (or updates) a cache control list for each of the two parts of the storage data b except for the part that overlaps the storage data a, and generates a cache control table. To be added.
( 4 ) の場合には, キャッシュ管理部 1 1は, 言 3憶データ aのキャッシュ制御 リストを生成して, キヤヅシュ制御表に付加し, 記憶デ一夕 aをキヤヅシュメモ リ 1 2に書き込む (S 1 ) 。 また, キャッシュ管理部 1 1は, 記憶デ一夕 bのう ち, 言己憶デ一夕 aと重なる部分を除いた部分 (1つ) について, キャッシュ制御 リストを生成または更新し, キャッシュ制御表に付カロする。 In the case of (4), the cache management unit 11 A list is generated and added to the cache control table, and the stored data a is written to the cache memory 12 (S1). In addition, the cache management unit 11 generates or updates a cache control list for a portion (one) of the storage data b except for a portion that overlaps with the memory storage a, and generates a cache control table. It comes with calories.
記億データ aのキヤヅシュ制御リストの状態には, "received"が書き込まれ, この記憶デ一夕 aが received状態であることが示される。  "Received" is written in the cache control list state of the storage data a, indicating that the stored data a is in the received state.
続いて, キャッシュ管理部 1 1は, コピーメッセ一ジ (COPY) を, メッセ一 ジ通信部 1 5および通信回線 Lを介してキヤヅシュ装置 2のメヅセージ通信部 2 5に送信する (S 2 ) 。 このコピーメッセージのヘッダ部の装置番号, 装置開始 アドレス, およびデ一夕長には, 記憶デ一夕 aのキヤヅシュ制御リストの装置番 号, 装置開始アドレス, およびデ一夕長がそれそれ書き込まれる。 また, コピー メヅセージのデ一夕部には, 記憶デ一夕 aが置かれる。  Subsequently, the cache management unit 11 transmits a copy message (COPY) to the message communication unit 25 of the cache device 2 via the message communication unit 15 and the communication line L (S2). The device number, device start address, and data length of the cache control list of the stored data are written in the device number, device start address, and data length in the header of the copy message. . In addition, in the data message section of the copy message, there is a memory message a.
メッセージ通信部 2 5は, キャッシュ装置 1から送信されたコピーメッセージ をキャッシュ管理部 2 1に与える。 キャッシュ管理部 2 1は, コピーメッセージ を受信すると, コピ一メヅセージのデ一夕部の言己憶デ一夕 aに対して, 前述した キャッシュ管理部 1 1のステップ S 1と同様の処理を実行する。  The message communication unit 25 gives the copy message transmitted from the cache device 1 to the cache management unit 21. When the cache management unit 21 receives the copy message, the cache management unit 21 executes the same processing as that of the above-described step S1 of the cache management unit 11 on the memory a in the data portion of the copy message. I do.
すなわち, キャッシュ管理部 2 1は, キャッシュメモリ 2 2のキャッシュ制御 表に基づいてキャッシュ制御リストの更新または生成を行い, 記憶データ aをキ ャッシュメモリ 2 2に書き込む (S 7 ) 。 記憶データ aのすべてがキャッシュメ モリ 2 2に書き込まれた時に, キヤヅシュ装置 1または 2の一方が障害で停止し てもこの記憶デ一夕 aは喪失されない。 すなわち, 記憶デ一夕 aの不揮発ィ匕が完 了する。 したがって, この不揮発化を表すために, キャッシュ管理部 2 1が保持 する記憶デ一夕 aのキヤヅシュ制御リストの状態には, "non-volatile"が書き込 まれる。  That is, the cache management unit 21 updates or generates the cache control list based on the cache control table of the cache memory 22 and writes the stored data a to the cache memory 22 (S7). When all of the stored data a is written to the cache memory 22, the stored data a is not lost even if one of the cache devices 1 and 2 stops due to a failure. That is, the nonvolatile storage of the stored data a is completed. Therefore, to indicate this non-volatility, "non-volatile" is written in the state of the cache control list of the storage device a held by the cache management unit 21.
記憶データ aのキャッシュメモリ 2 2への書き込み後, キャッシュ管理部 2 1 は, 正常に書き込みが終了したことを示す第 1の確認応答メッセージ (C-ACK) をメヅセージ通信部 2 5および通信回線 Lを介してメッセージ通信部 1 5に送信 する (S 8 ) 。  After writing the stored data a to the cache memory 22, the cache management unit 21 sends a first acknowledgment message (C-ACK) indicating that the writing has been completed normally to the message communication unit 25 and the communication line L. The message is transmitted to the message communication unit 15 via the server (S8).
メヅセージ通信部 1 5は, 第 1の確認応答メッセージをキャッシュ管理部 1 1 に与える。 キャッシュ管理部 1 1は, 第 1の確認応答メヅセージをメッセージ通 信部 1 5から受け取ると, アクセスホスト用の確認応答メヅセージ (ホスト確認 応答メヅセージ) を入出力部 1 3およびアクセスネヅトワーク 6を介してァクセ スホスト 4 iに送信する(S 3 )。 このホスト確認応答メヅセージの送信により, アクセスホスト 4 は, 記憶デ一夕 aがキャッシュシステム 3 (キャッシュ装置 1および 2 ) に言 3憶され, 不揮発ィ匕されたことを知る。 The message communication unit 15 sends the first acknowledgment message to the cache management unit 11 Give to. When the cache management unit 11 receives the first acknowledgment message from the message communication unit 15, the cache management unit 11 sends an acknowledgment message for the access host (host acknowledgment message) to the input / output unit 13 and the access network 6. It is transmitted to the access host 4i via the server (S3). By transmitting the host acknowledgment message, the access host 4 knows that the storage data a has been stored in the cache system 3 (cache devices 1 and 2) and has been nonvolatilely stored.
ホスト確認応答メッセージの送信の際に, キャッシュ管理部 1 1は, デ一夕 a のキャッシュ制御リストの状態を "received" から "dirty" に更新する。  When transmitting the host acknowledgment message, the cache management unit 11 updates the state of the cache control list of the server a from "received" to "dirty".
続いて, その後, 適当なタイミングで, キャッシュ管理部 1 1は, キャッシュ メモリ 1 .2に記憶した記憶デ一夕 aに対応するキャッシュ制御リストの状態を "flushing" に更新するとともに, この記憶デ一夕 aを, 入出力部 1 4およびス トレージネットワーク 7を介して 2次記憶装置群 5の 2次記憶装置 (5 kとす る。 ) に送信する (S 4 ) 。 この 2次記憶装置 5 kは, 記憶デ一夕 aのキヤヅシ ュ制御リス卜の装置番号に対応する 2次記憶装置である。 送信された記憶デ一夕 aは, 2次記憶装置 5 kにおける装置開始アドレスから始まる領域に書き込まれ る (S 4 ) 。 Subsequently, at an appropriate timing thereafter, the cache management unit 11 updates the state of the cache control list corresponding to the storage data stored in the cache memory 1.2 to "flushing", and updates this storage data. the Isseki a, and transmits the secondary storage device of the output unit 1 4 and through your storage network 7 secondary storage device group 5 (shall be the 5 k.) (S 4) . The secondary storage device 5 k is a secondary storage device corresponding to the Kiyadzushi Interview Control List Bok device number of the storage de Isseki a. Transmitted stored de Isseki a is Ru written in an area starting from the device start address in the secondary storage device 5 k (S 4).
記憶デ一夕 aの 2次記憶装置 5 kへの送信 (書き込み) が終了すると, キヤヅ シュ管理部 1 1は, キャッシュ制御表の状態を "flushed msg" に更新するとと もに, フラッシュメッセ一ジ (FLUSHED) をメッセ一ジ通信部 1 5および通信 回線 Lを介してメヅセージ通信部 2 5に送信する (S 5 ) 。 このフラッシュメヅ セ一ジは, メッセージ通信部 2 5からキャッシュ管理部 2 1に与えられる。 これ により, キャッシュ管理部 2 1は, フラッシュ (すなわち記憶デ一夕 aの 2次記 憶装置への不揮発化) が完了したことを知り, キャッシュメモリ 2 2に記憶され た記憶データ aを安全に消去できることを認識する。 When the transmission (writing) of the storage data “a” to the secondary storage device 5 k is completed, the cache management unit 11 updates the state of the cache control table to “flushed msg” and updates the flash message. The message (FLUSHED) is transmitted to the message communication unit 25 via the message communication unit 15 and the communication line L (S5). This flash message is given from the message communication unit 25 to the cache management unit 21. As a result, the cache management unit 21 knows that the flushing (that is, the non-volatile storage of the storage device a in the secondary storage device) has been completed, and safely stores the storage data a stored in the cache memory 22. Recognize that it can be erased.
続いて, キヤヅシュ管理部 2 1は, キャッシュメモリ 2 2に記憶された記憶デ —夕 aのキャッシュ制御リストの状態を "clean" に更新するとともに, clean状 態に移行したことをキヤヅシュ装置 1に通知するために, 第 2の確認応答メヅセ ージ (F-ACK) を, メヅセージ通信部 2 5および通信回線 Lを介してメッセージ 通信部 1 5に送信する (S 9 ) 。 キヤヅシュ管理部 1 1は, メッセ一ジ通信部 1 5から第 2の確認応答メッセ一 ジを受け取ると, 記憶データ aを clean状態として扱うために, キャッシュ制御 リストの状態を "clean" に更新する。 Subsequently, the cache management unit 21 updates the state of the cache control list of the storage data stored in the cache memory 22 to “clean” and notifies the cache device 1 that the state has been shifted to the clean state. To notify, a second acknowledgment message (F-ACK) is transmitted to the message communication unit 15 via the message communication unit 25 and the communication line L (S9). Upon receiving the second acknowledgment message from the message communication unit 15, the cache management unit 11 updates the state of the cache control list to “clean” in order to treat the stored data a as a clean state. .
キャッシュ管理部 1 1および 2 1は, clean状態にあるキャッシュ制御リスト の状態をいつでも "invalidated" (無効化) に更新することができる (S 6 , S 1 0 )。たとえば, clean状態にある記憶データ aが不要になった時点, または, キャッシュメモリ 1 2または 2 2の空き容量がなくなり, 記憶データ aを消去す る必要が生じた時点等に, 記憶データ aの状態を invalidated状態にすることが できる。 また, L R U (Least Recently Used) アルゴリズムを用いて, 最も読 み出されていない記憶デ一夕 aを invalidated状態にすることもできる。  The cache management units 11 and 21 can always update the status of the cache control list in the clean state to "invalidated" (S6, S10). For example, when the storage data a in the clean state becomes unnecessary or when the cache memory 12 or 22 runs out of free space and the storage data a needs to be erased, the storage data a is deleted. The status can be invalidated. Also, by using the LRU (Least Recently Used) algorithm, the storage data a that has not been read most can be made invalidated.
invalidated状態のキヤヅシュ制御リストは,その後,新たな記憶デ一夕がキヤ ッシュメモリに書き込まれる時等に, キャッシュ制御表から消去されるか, また は, 他の新たに記憶データのキャッシュ制御リストにより上書きされることとな る。 また, invalidated状態の記憶デ一夕のキャッシュメモリ上の領域も,他の新 たな言己憶デ一夕により上書きされる。  The cache control list in the invalidated state is then deleted from the cache control table when a new storage data is written to the cache memory, or overwritten by the cache control list of another newly stored data. Will be done. In addition, the area of the cache memory in the invalidated storage area is also overwritten by another new memory area.
これにより, キャッシュシステム 3の記憶デー夕の書き込み処理は終了する。 キャッシュシステム 3のキャッシュ装置 1および 2は, アクセスホスト群から独 立して記憶デ一夕を受信し, 書き込み処理を独立して実行することができる。 し たがって, キャッシュシステム 3は, キャッシュ装置が 1つしか存在しない場合 と比較して, ほぼ 2倍の処理能力を有する。 これにより, キャッシュ装置が 1つ の場合のボトルネックを解消できる。 また, 記憶デ一夕は, 少なくとも一方のキ ャヅシュ装置または 2次記憶装置群 5に保持されているので, 一方のキャッシュ 装置に障害が発生しても, 記憶データが失われることはない。  Thus, the storage data write processing of the cache system 3 ends. The cache devices 1 and 2 of the cache system 3 can independently receive the storage data from the access host group and execute the write processing independently. Therefore, the cache system 3 has almost twice the processing capacity as compared to the case where only one cache device exists. This eliminates the bottleneck when there is one cache device. Further, since the storage data is held in at least one of the cache devices or the secondary storage device group 5, even if a failure occurs in one of the cache devices, the stored data is not lost.
キャッシュ装置 2がアクセスホスト 4 iから記憶デ一夕を受信した場合には, キャッシュ装置 1とキャッシュ装置 2とが入れ替わるだけであり, 上記と同じ処 理が実行される。  When the cache device 2 receives the stored data from the access host 4i, only the cache device 1 and the cache device 2 are switched, and the same processing as described above is executed.
なお, ステップ S 7において, キャッシュ装置 1から通信回線 Lを介して送信 された記憶デ一夕 aと同一のァドレス範囲を有する別の記憶データ (記憶デ一夕 c ) を, キヤヅシュ装置 2がアクセスホスト 4 jから受信し, この記憶データ c がキヤヅシュ装置 2において received状態に置かれている場合がある。すなわち 3 同一のアドレス範囲であって, 内容の異なる記憶デ一夕 aおよび cを, キヤヅシ ュ装置 1および 2が, ほぼ同時に, 異なるアクセスホストからそれそれ受信する 場合がある。 この場合の処理については, 後述する書き込みデ一夕の衝突時の処 理において説明する。 In step S7, the cache device 2 accesses another storage data (storage data c) having the same address range as the storage data a transmitted from the cache device 1 via the communication line L. Received from host 4 j and stored data c May be placed in the received state in the cache device 2. That 3 have the same address range, a different storage de Isseki a and c of the content, Kiyadzushi Interview apparatus 1 and 2, almost simultaneously, there is a case where it it received from different access host. The processing in this case will be described later in the processing at the time of collision of write data.
ステップ S 1において, 記憶データ aにより上書きされ, 消去された記憶デ一 夕 bが received状態または flushed msg状態にあり,この記憶データ bについて の第 1の確認応答メヅセージまたは第 2の確認応答メヅセージがキャッシュ装置 2からキャッシュ装置 1へ送信中の場合がある。 この場合に, キャッシュ装置 1 (キャッシュ管理部 1 1 ) は, キャッシュ装置 2から送信されたこれらの確認応 答メヅセージを無視することとなる。 すなわち, キヤヅシュ装置 1は, キヤヅシ ュ装置 2からのこれらの確認応答メヅセージを受信しても,廃棄するだけであり, 確認応答メヅセージの受信に伴う処理を実行しない。  In step S1, the stored data b overwritten and erased by the stored data a is in the received state or the flushed msg state, and the first acknowledgment message or the second acknowledgment message for the stored data b is In some cases, data is being transmitted from the cache device 2 to the cache device 1. In this case, the cache device 1 (cache management unit 11) ignores these confirmation response messages sent from the cache device 2. That is, even if the cache device 1 receives these acknowledgment messages from the cache device 2, it only discards them and does not execute the processing accompanying the reception of the acknowledgment messages.
確認応答メッセージを無視するかどうかは, メヅセージに含まれるシーケンス 番号に基づいて判断される。 たとえば, シーケンス番号が 1から順に 1つずる増 加する番号である場合において, キヤヅシュ装置 1が第 1の確認応答メヅセージ を 2つ受信した場合には,両第 1の確認応答メヅセージのシーケンス番号のうち, 若い(小さな)値を有するものは記憶デ一夕 bに対応する応答メッセージである。 したがって, この場合には, 若いシーケンス番号を有する第 1の確認応答メヅセ —ジが無視される。  Whether to ignore the acknowledgment message is determined based on the sequence number contained in the message. For example, if the sequence number is incremented by one in order from 1 and if the cache device 1 receives two first acknowledgment messages, the sequence numbers of the two acknowledgment messages will be changed. Among them, the one with the young (small) value is the response message corresponding to the stored data b. Therefore, in this case, the first acknowledgment message with the lower sequence number is ignored.
また, キヤッシュ装置 2によってフラッシュされ, flushed msg状態にある記 憶データ (記憶デ一夕 d ) と同一のアドレス範囲で, 内容の異なる記憶デ一夕 a が, アクセスホストからキヤヅシュ装置 1に送信され, キャッシュ装置 1により 受信されるときがある。 この場合には, キャッシュ装置 1は, キャッシュ装置 2 からのフラッシュメヅセージを無視するとともに, キヤヅシュ装置 2は, すでに フラッシュされた記憶データ dを, キヤヅシュ装置 1から送信されるコビ一メヅ セージに含まれる記憶デ一夕 aに置き換えることにより, 同一ァドレス範囲の記 憶データの不一致を解消することができる。  In addition, a storage device a having a different content in the same address range as the storage data (storage device data d) which is flushed by the cache device 2 and is in the flushed msg state is transmitted from the access host to the cache device 1. , Sometimes received by cache device 1. In this case, the cache device 1 ignores the flash message from the cache device 2, and the cache device 2 converts the stored flashed data d into the copy message transmitted from the cache device 1. By replacing the stored data with the stored data a, the inconsistency of the stored data in the same address range can be resolved.
キヤヅシュ装置 1の記憶デ一夕 aが flushing状態となるまでに,この記憶デ一 タ aと同じアドレス範囲の新たな記憶データ (記憶デ一夕 e ) を, キャッシュ装 置 1がアクセスホストから受信した場合には, キャッシュ装置 1 (キャッシュ管 理部 1 1 ) は, 2次記憶装置 4 kへの記憶デ一夕 aの書き込み (フラッシング) を中止し, 記憶データ eのみを 2次記憶装置 4 kに書き込むことにより, 書き込 みの重複を回避することができる。 By the time the storage device 1 of the cache device 1 enters the flushing state, the storage device 1 When the cache device 1 receives new storage data (storage data e) in the same address range as the data a from the access host, the cache device 1 (cache management unit 11) stores the secondary storage data. stops writing storage de Isseki a to device 4 k (flushing), only the stored data e by writing to the secondary storage device 4 k, it is possible to avoid the write Mino overlap.
<記憶データの書き込み処理の他の形態 >  <Other forms of storage data write processing>
アクセスホスト 4 iからキヤヅシュ装置 1に送信された記憶デ一夕 aが複数の バイ トからなるプロックデ一夕である場合に, コピーメヅセージは, このブロヅ クデータを複数の部分に分割して, 各部分ごとに複数個送信されてもよい。 この 場合に, 第 1の確認応答メヅセージも, 各部分ごとに対応して, 複数個送信され ることとなる。 また, このプロヅクデ一夕のキャッシュ制御リストの状態ば, プ ロックデ—夕のすべてについて, 受信やキャッシュメモリ 2 2への書き込み等が 終了した後に, 更新される。 さらに, アクセスホスト 4 iへのホスト確認応答メ ヅセ一ジも, プロヅクデータのすべてについての第 2の確認応答メヅセージ受信 後に送信される。  If the storage data a transmitted from the access host 4i to the cache device 1 is a block data consisting of a plurality of bytes, the copy message divides the block data into a plurality of parts, May be transmitted. In this case, a plurality of first acknowledgment messages are also transmitted corresponding to each part. In addition, the state of the cache control list for this block is updated after reception and writing to the cache memory 22 are completed for all blocks. In addition, a host acknowledgment message to the access host 4i is also transmitted after receiving the second acknowledgment message for all of the block data.
ステップ S 5で送信されるフラッシュメヅセージは, 他のメッセージとは別に 送信することもできるし, 他の制御メヅセ一ジに付加してピギーバヅク (piggy back) により送信することもできる。 すなわち, ステップ S 4の直後, 他のメヅ セージとは分離された個別メッセ一ジとしてフラッシュメッセージを送信するこ ともできるし, その後, 他の記憶デ一夕についてのコピーメヅセージに付加して ピギーバックとして送信することもできる。  The flash message transmitted in step S5 can be transmitted separately from other messages, or can be transmitted by piggyback in addition to other control messages. That is, immediately after step S4, a flash message can be transmitted as an individual message separated from other messages, and then added to a copy message for another storage message and piggybacked. Can also be sent as
なお, キヤヅシュメモリ 1 2に記憶されている記憶デ一夕 bと, アクセスホス ト 4 iから受信した記憶デ一夕 aとが同一内容である場合に, キャッシュ装置 1 はアクセスホスト 4丄に対して即座に確認応答メヅセージを送信し, 2次記憶装 置 (ならびにキャッシュメモリ 1 2および 2 2 ) への書き込み (更新) を行わな いようにすることもできる。 これによつて, 書き込みに要するコストを減少させ ることができる。  When the storage data b stored in the cache memory 12 and the storage data a received from the access host 4 i have the same contents, the cache device 1 sends the access data to the access host 4 丄. An acknowledgment message can be sent immediately to avoid writing (updating) to the secondary storage (and cache memories 12 and 22). As a result, the cost required for writing can be reduced.
<書き込みデータの衝突時の処理 >  <Processing when write data collide>
「書き込みデ一夕の衝突」 とは, アクセスホスト群からキャッシュシスデム 3 に同一のアドレス範囲で内容の異なる記憶データが複数書き込まれ, これら複数 の記憶デ一夕がキヤヅシュシステム 3において received状態にある状態をいう。 この衝突には, 一方のキャッシュ装置のみにおける衝突と, 2つのキヤヅシュ 装置 1および 2の双方における衝突とがある。 以下では, これら 2つの場合の衝 突発生時の処理について説明する。 “Overwrite collision” means that the access host group sends the cache system 3 In this case, multiple storage data with different contents are written in the same address range, and these multiple storage data are in the received state in the cache system 3. The collision includes a collision in only one cache device and a collision in both cache devices 1 and 2. The following describes the processing when a collision occurs in these two cases.
( 1 ) 一方のキヤヅシュ装置での衝突発生時の処理  (1) Processing when a collision occurs with one cache device
キャッシュ装置 1が, ある記憶データ A 1をアクセスホスト 4丄から受信後, この記憶デ一夕 A 1と同一のアドレス範囲で, 内容の異なる言己憶デ一夕 A 2をァ クセスホスト 4」から受信した場合に, キャッシュ装置 1において, 記憶データ A 1と A 2との衝突が発生する。アクセスホスト 4 iと 4 jとは同じ場合もあるし, 異なる場合もある。  After the cache device 1 receives a certain storage data A1 from the access host 4 ,, the access host 4 stores the contents of the memory A2 with different contents in the same address range as the storage data A1. When the data is received from the cache device 1, a collision between the stored data A1 and A2 occurs in the cache device 1. The access hosts 4i and 4j may be the same or different.
この場合に, キャッシュ装置 1のキヤヅシュ管理部 1 1は, 記憶データ A 1の キヤヅシュ制御リストを, 言 3憶デ一夕 A 2のキヤヅシュ制御リストにより上書き するか, あるいは, 記憶デ一夕 A 1のキャッシュ制御リス トを消去または invalidated状態にして,記憶デ一夕 A 2のキヤヅシュ制御リストを新たに生成し, キャッシュ制御表に加える。 また, キャッシュ管理部 1 1は, キャッシュメモリ 1 2において, 記憶デ一夕 A 2を, 記憶デ一夕 A 1と同一の領域または異なる領 域に書き込む。  In this case, the cache management unit 11 of the cache device 1 overwrites the cache control list of the stored data A1 with the cache control list of the storage data A1 or the storage control A1. The cache control list of the storage device A2 is deleted or invalidated, and a cache control list of the storage device A2 is newly generated and added to the cache control table. In addition, the cache management unit 11 writes the storage data A2 to the same area as the storage data A1 or a different area in the cache memory 12.
また, キャッシュ管理部 1 1は, 記憶データ A 1についての第 1の確認応答メ ヅセージをキヤヅシュ装置 2から受信した場合には, この第 1の確認応答メッセ —ジを無視する。 なお, 2つの第 1の確認応答メッセ一ジは, たとえば, 上述し たのと同様にして, シーケンス番号の大小 (老若) により区別することができ, シーケンス番号の小さい (若い) 第 1の確認応答メヅセージが無視される。  When the cache management unit 11 receives the first acknowledgment message for the stored data A1 from the cache device 2, the cache management unit 11 ignores the first acknowledgment message. Note that the two first acknowledgment messages can be distinguished, for example, in the same manner as described above, by the large and small sequence numbers (old and young), and the first acknowledgment messages with small sequence numbers (young). The response message is ignored.
同様にして, キャッシュ装置 2のキャッシュ管理部 2 1は, 記憶デ一夕 A 1の コピーメッセージ (第 1のコピーメッセージ) に基づいて生成したキャッシュ制 御リストを, 言 3憶デ一夕 A 2のコピ一メヅセージ (第 2のコピーメッセ一ジ) に 基づいて上書きするか, あるいは, 記憶デ一夕 A 1のキヤヅシュ制御リストを消 去または invalidated状態にして, 記憶デ一夕 A 2のキャッシュ制御リストを新 たに生成し, キャッシュ制御表に加える。 また, キャッシュ管理部 2 1は, キヤ ッシュメモリ 2 2において, 言 3憶デ一夕 A 2を, 言己憶デ一夕 A 1と同一の領域ま たは異なる領域に書き込む。 Similarly, the cache management unit 21 of the cache device 2 stores the cache control list generated based on the copy message (the first copy message) of the stored data A1 in the storage device A2. Either overwrite based on the copy message (the second copy message) or erase or invalidate the cache control list of storage data A1 and cache control of storage data A2. A new list is created and added to the cache control table. Also, the cache management unit 21 In the flash memory 22, the memory A 2 is written to the same area as the memory A 1 or a different area.
なお, 通信回線 Lがたとえばギガビットイーサネットのような場合には, 後か ら送信した第 2のコピ一メヅセージが先に送信した第 1のコピ一メヅセージより も先にキャッシュ装置 2に受信される場合がある。 このような場合にも, キヤヅ シュ管理部 2 1は, 第 1のコピ一メッセージおよび第 2のコピーメッセージの各 シーケンス番号に基づいて, 第 1のコピーメッセ一ジを無視 (廃棄) し, 第 2の ■ コピーメッセージの記憶デ一夕をキャッシュメモリ 2 2に記憶することができる。  When the communication line L is, for example, a gigabit Ethernet, the second copy message transmitted later is received by the cache device 2 before the first copy message transmitted earlier. There is. Also in such a case, the cache management unit 21 ignores (discards) the first copy message based on the sequence numbers of the first copy message and the second copy message, and deletes the first copy message. 2 ■ The storage of the copy message can be stored in the cache memory 22.
キヤヅシュ装置 1における記憶デ一夕の衝突を説明したが, キヤヅシュ装置 2 において同様の衝突が発生した場合も同様の処理が実行される。  Although the collision of the storage device 1 in the cache device 1 has been described, the same processing is executed when a similar collision occurs in the cache device 2.
( 2 ) 両キャッシュ装置間での衝突発生時の衝突検出処理  (2) Collision detection processing when a collision occurs between both cache devices
図 5 Aから図 5 Cは, 両キャッシュ装置間で衝突が発生した場合の衝突検出の 処理の流れを示すシーケンス図である。 これらの図において, 記憶デ一夕 A 1お よび記憶デ一夕 A 2は, 同一のアドレス範囲であり, 異なる内容を有する記憶デ 一夕である。  5A to 5C are sequence diagrams showing the flow of the collision detection process when a collision occurs between the two cache devices. In these figures, storage data A1 and storage data A2 are storage data having the same address range and different contents.
図 5 Aから図 5 Cのいずれにおいても, アクセスホスト 4 から送信された記 憶データ A 1は,キヤヅシュ装置 1により受信されて receive状態にあり,また, アクセスホスト 4 jから送信された記憶データ A 2は, キヤヅシュ装置 2により 受信されて receive状態にある。 したがって, 記憶デ一夕 A 1および記憶デ一夕 A 2は衝突状態にある。  In each of FIGS. 5A to 5C, the storage data A1 transmitted from the access host 4 is received by the cache device 1 and is in the receive state, and the storage data A1 transmitted from the access host 4j is also received. A2 is received by the cache device 2 and is in the receive state. Therefore, the stored data A1 and the stored data A2 are in a collision state.
なお, キヤッシュ装置 1の記憶データ A 1の受信時刻とキヤッシュ装置 2の記 憶データ A 2の受信時刻とは同時の場合もあるし, 一方が他方より早い場合もあ るし, 遅い場合もある。  Note that the reception time of the stored data A1 of the cache device 1 and the reception time of the stored data A2 of the cache device 2 may be simultaneous, or one may be earlier or later than the other. .
この衝突状態において, キャッシュ装置 1および 2の双方で, 言 3憶データ A 1 および A 2が dirty状態または non-volatile状態に移行すると, 両キヤヅシュ装 置の保持するデ一夕の一貫性および透過性が保持できなくなる。 したがって, ― 貫性および透過性を保持するために, 両キャッシュ装置は, まず衝突状態を検出 する必要がある。 このため, 以下の処理が実行される。  In this collision state, when both memory devices A 1 and A 2 shift to the dirty state or non-volatile state in both cache devices 1 and 2, the consistency and transparency of the data held by both cache devices are restored. Cannot be maintained. Therefore:-To maintain persistence and transparency, both cache units must first detect a collision condition. Therefore, the following processing is executed.
図 5 Aは, 一方のキヤヅシュ装置 (キヤヅシュ装置 2 ) が記憶デ一夕 A 2のコ ピーメッセージを送信する前に, 他方のキャッシュ装置 (キャッシュ装置 1) か ら記憶デ一夕 A 1のコピーメヅセ一ジを受信した場合の衝突検出の処理の流れを 示している。 Figure 5A shows that one cache device (cache device 2) is stored in memory A2. This figure shows the flow of the collision detection process when a copy message of the storage device A1 is received from the other cache device (cache device 1) before sending the copy message.
キヤッシュ装置 1はアクセスホスト 4 iから記憶データ A 1を, キヤヅシュ装 置 2はアクセスホスト 4jから言 3憶データ A2を, それそれ受信することにより, コピーメッセージをそれそれ送信しょうとする (S l l, S 13) 。 しかし, キ ャヅシュ装置 2がコピーメッセージを送信する前に, キャッシュ装置 1から, 記 憶データ A 1のコピーメッセージを受信した場合には, キャッシュ装置 2 (キヤ ヅシュ管理部 21) は, 記憶デ一夕 A 2について衝突が発生していることを検出 する (S 14)。  The cache device 1 attempts to transmit the copy message by receiving the stored data A1 from the access host 4i and the cache device 2 receiving the stored data A2 from the access host 4j (Sll). , S13). However, if the copy message of the storage data A1 is received from the cache device 1 before the cache device 2 transmits the copy message, the cache device 2 (cache management unit 21) stores the data in the storage device. Evening A2 detects that a collision has occurred (S14).
すなわち, キヤヅシュ装置 2 (キャッシュ管理部 21)は, (a)記憶デ一夕 A 1のコピーメヅセージのへヅダ部に含まれるァドレス範囲 (つまり装置番号, 装置開始アドレス, およびデ一夕長) と, 言 3憶デ一夕 A2のアドレス範囲とを比 較することにより, 同じアドレス範囲であることを検出し, (b) コピーメッセ 一ジのデ一夕部に含まれる記憶デ一夕 A 1の内容と, 記憶デ一夕 A2の内容とを 比較することにより, 記憶デ一夕の内容が異なることを検出し, (c)記憶デー 夕 A 2のキャッシュ制御リストにより記憶デ一夕 A 2が receive状態にあること, および, コピ一メヅセージのへヅダ部の状態により記憶デ一夕 A 1が receive状 態にあることを検出する。 これら (a)〜(c) により, キャッシュ装置 2は, 記憶データ A 1と言 3憶デ一夕 A 2との衝突の発生を検出する。  That is, the cache device 2 (cache management unit 21) calculates (a) the address range (that is, the device number, the device start address, and the data length) included in the header of the copy message of the storage data A1; By comparing the address range of A3 with the address range of A2, it is detected that the address range is the same, and (b) the address of A1 is stored in the data area of the copy message. By comparing the contents with the contents of the stored data A2, it is detected that the contents of the stored data A2 are different, and (c) the stored data A2 is determined by the cache control list of the stored data A2. It detects that the storage device A1 is in the receive state based on the receive state and the status of the header of the copy message. From these (a) to (c), the cache device 2 detects the occurrence of a collision between the stored data A1 and the memory A2.
キャッシュ装置 2は, 衝突を検出することにより, 記憶データ A2のコピーメ ヅセージの送信を中止するとともに, 第 1の確認応答メヅセージの代わりに衝突 検出メッセ一ジ (COLLISION) をキャッシュ装置 1に送信する (S14)。  Upon detecting the collision, the cache device 2 stops transmitting the copy message of the stored data A2, and transmits a collision detection message (COLLISION) to the cache device 1 instead of the first acknowledgment message ( S14).
キャッシュ装置 1 (キャッシュ管理部 11) は, キャッシュ装置 2から衝突検 出メヅセ一ジを受信することにより, 記憶デ一夕 A 1について衝突が発生してい ることを検出する (S12)。 すなわち, キャッシュ装置 1 (キヤヅシュ管理部 11) は, メッセージが衝突検出メヅセージであること, および, 衝突検出メヅ セージのヘッダ部に含まれるアドレス範囲に基づいて, 記憶デ一夕 A 1に衝突が 発生していることを検出する。 なお, キャッシュ装置 1と 2とが入れ替わった場合, すなわち, キャッシュ装 置 2がキャッシュ装置 1より先に記憶デ一夕 A 2のコピーメヅセージをキヤヅシ ュ装置 1に送信した場合には, キヤヅシュ装置 1が衝突検出メヅセージをキヤヅ シュ装置 2に送信することとなる。 The cache device 1 (cache management unit 11) detects that a collision has occurred in the storage device A1 by receiving the collision detection message from the cache device 2 (S12). That is, based on the fact that the message is a collision detection message and the address range included in the header of the collision detection message, the cache device 1 (cache management unit 11) detects a collision in the storage device A1. Detect that it has occurred. When the cache devices 1 and 2 are switched, that is, when the cache device 2 transmits the copy message of the storage device A2 to the cache device 1 before the cache device 1, the cache device 1 The collision detection message is transmitted to the cache device 2.
このようにして, 一方のキャッシュ装置が receive状態にある記憶デ一夕につ いて, 同一アドレス範囲の異なる内容の記憶デ一夕を有するコピーメヅセージを 受信した場合には, 他方のキヤヅシュ装置に, コピーメッセージの代わりに, 衝 突発生を通知する衝突検出メヅセージを送信することにより, 両キヤヅシュ装置 が衝突の発生を検出することができる。  In this way, when one cache device receives a copy message having a storage content of a different content in the same address range with respect to the storage data in the receive state, the other cache device transfers the copy data to the other cache device. By transmitting a collision detection message notifying the occurrence of a collision instead of a message, both cache devices can detect the occurrence of a collision.
図 5 Bは, 双方のキャッシュ装置がコピーメッセ一ジを送信し, 受信した場合 の衝突検出の処理の流れを示している。  Figure 5B shows the flow of the collision detection process when both cache devices send and receive a copy message.
キャッシュ装置 1が記憶データ A 1のコピーメッセ一ジを送信し (S 2 1 ) , キャッシュ装置 2が記憶デ一夕 A 2のコピーメッセ一ジを送信し (S 2 4 ) , 両 キャッシュ装置が, それそれ相手方のコピーメッセージを受信した場合に, 両キ ャヅシュ装置は, この相手方のコピーメヅセージによりそれそれ衝突を検出する ( S 2 2 , S 2 5 ) o  Cache device 1 sends a copy message of stored data A 1 (S 21), cache device 2 sends a copy message of stored data A 2 (S 24), and both cache devices send When receiving the other party's copy message, each of the cache devices detects a collision by the other party's copy message (S22, S25) o
この場合にも, 図 5 Aと同様に, 衝突を検出したキャッシュ装置は, 第 1の確 認応答メヅセージの代わりに衝突検出メヅセージを相手方に送信する ( S 2 2 , S 2 5 ) 。 すなわち, 図 5 Bでは, 双方のキャッシュ装置が衝突検出メヅセージ を相手方のキャッシュ装置に送信することとなる。 これにより, 双方のキヤヅシ ュ装置は, 既に衝突検出済みの衝突を再度検出することとなる。  In this case as well, as in FIG. 5A, the cache device that has detected a collision transmits a collision detection message to the other party instead of the first acknowledgment message (S22, S25). In other words, in Fig. 5B, both cache devices transmit a collision detection message to the other cache device. As a result, both cache devices will again detect a collision that has already been detected.
このように, 両キャッシュ装置が, コピ一メッセージを送信し, 受信した場合 には, このコピ一メッセージにより両キヤヅシュ装置が衝突を検出することがで きる。 さらに, この場合においても, 双方のキャッシュ装置が衝突検出メッセ一 ジを送信することにより, 双方のキャッシュ装置は, 相互に衝突を検出したこと を通知し合うことができる。  In this way, when both cache devices transmit and receive a copy message, both cache devices can detect a collision based on the copy message. Furthermore, in this case, both cache devices can send a collision detection message so that both cache devices can mutually notify that they have detected a collision.
図 5 Cは, 図 5 Bと同様に, 双方のキャッシュ装置がコピ一メッセージを送信 するが, 記憶データ A 1のコピーメヅセージがキヤヅシュ装置 1の衝突検出メッ セージよりも後にキヤヅシュ装置 2に受信された場合の衝突検出の処理の流れを 示している。 In FIG. 5C, as in FIG. 5B, both cache devices transmit a copy message, but the copy message of the stored data A1 is received by the cache device 2 after the collision detection message of the cache device 1. The flow of the collision detection process Is shown.
この場合に, キャッシュ装置 2は, キャッシュ装置 1から送信された衝突検出 メッセージにより衝突を検出するが (S 3 5 ) , その後, 受信された記憶デ一夕 A 1のコピーメヅセージによって,検出済みの衝突を再度検出することとなる(S 3 6 ) 。 これにより, 両キャッシュ装置で, 衝突が検出されたこととなる (S 3 2 , S 3 5 , S 3 6 )  In this case, the cache device 2 detects the collision based on the collision detection message transmitted from the cache device 1 (S35), and then detects the detected collision by the received copy message of the storage device A1. Is detected again (S36). As a result, a collision is detected in both cache devices (S32, S35, S36)
なお, キャッシュ装置 2は, 図 5 Cの破線で示すように, 検出済みの衝突の検 出後,第 3の確認応答メヅセージ(COL - ACK)をキャッシュ装置 1に送信して もよい。 第 3の確認応答メヅセージが送信された場合に, キャッシュ装置 1は, このメヅセージにより, 検出済みの衝突を再度検出することとなる (S 3 3 ) 図 5 Cと逆の状況も生じ得る。 すなわち, 記憶デ一夕 A 2のコピ一メッセージ がキャッシュ装置 1に遅れて到着する場合である。 この場合にも, キャッシュ装 置 1と 2とが入れ替わるだけで, 同様の処理が行われる。  Note that the cache device 2 may transmit a third acknowledgment message (COL-ACK) to the cache device 1 after detecting the detected collision, as indicated by the broken line in FIG. 5C. When the third acknowledgment message is transmitted, the cache device 1 again detects the detected collision by this message (S33). A situation opposite to that of FIG. 5C may occur. That is, the copy message of the storage device A2 arrives at the cache device 1 with a delay. In this case, the same processing is performed only by switching between cache devices 1 and 2.
( 3 ) 両キヤッシュ装置間での衝突回復処理  (3) Collision recovery processing between both cache devices
上述した両キャッシュ装置間で衝突が検出された場合に, その状況を解消 (回 復) する処理には以下の 3つの方法がある。  When a collision is detected between the two cache devices described above, the following three methods are used to resolve (recover) the situation.
( a ) 第 1の方法  (a) First method
第 1の方法は, 衝突が検出された場合に, キャッシュ装置 1または 2のいずれ を優先するかをあらかじめ決めておき, 優先されるキヤヅシュ装置 1が受信した 記憶デ一夕を有効なものとする衝突解消方法である。 この場合, 優先されるキヤ ッシュ装置の記憶データのみが有効なものとして取り扱われ, 優先されないキヤ シュ装置の記憶データは無効なものとして取り扱われる。  In the first method, when a collision is detected, it is determined in advance which of the cache devices 1 and 2 is to be prioritized, and the stored data received by the prioritized cache device 1 is made valid. This is a collision resolution method. In this case, only the data stored in the priority cache device is treated as valid, and the data stored in the non-priority cache device is treated as invalid.
ここで, 「記憶デ一夕が有効なものとして取り扱われる」 とは, その記憶デ一 夕のキヤヅシュ制御リストが invalidated状態以外の状態でキヤヅシュ制御表に 存在し, その記憶データがキャッシュメモリに記憶されていることをいう。  Here, “the stored data is treated as valid” means that the cache control list of the stored data exists in the cache control table in a state other than the invalidated state, and the stored data is stored in the cache memory. That is being done.
「記憶データが無効なものとして取り扱われる」 とは, その記憶デ一夕のキヤ ヅシュ制御リス卜がキャッシュ制御表から消去される (他のキャッシュ制御リス トにより上書きされる場合を含む。 ) か, または, そのキャッシュ制御リストの 状態が invalidated状態にされることをいう。 その記憶デー夕は, キャッシュメ モリに存在する場合もあるし, キャッシュメモリから消去されている場合 (他の 記憶デ一夕により上書きされる場合を含む。 ) もある。 “The stored data is treated as invalid” means that the cache control list of the stored data is deleted from the cache control table (including the case where it is overwritten by another cache control list). , Or that the status of the cache control list is invalidated. In the memory day, In some cases, it may exist in memory, and in other cases it may have been erased from the cache memory (including cases where it is overwritten by other storage devices).
たとえば, 図 5 Aにおいて, キャッシュ装置 1が優先される場合に, キヤヅシ ュ装置 1のキャッシュ管理部 1 1は, 衝突を検出しても (S 1 2 ) , 記憶データ A 1のキャッシュ制御リストおよびキャッシュメモリ 1 2を更新する必要はない。 すなわち, キヤヅシュ装置 1では, 記憶データ A 1が有効なものとして取り扱わ れ, 記憶データ A 2は無効なものとして取り扱われる。  For example, in FIG. 5A, when the cache device 1 is prioritized, the cache management unit 11 of the cache device 1 detects the collision (S12), but the cache control list of the storage data A1 There is no need to update the cache memory 12. That is, in the cache device 1, the stored data A1 is treated as valid, and the stored data A2 is treated as invalid.
一方, キャッシュ装置 2のキャッシュ管理部 2 1は, 衝突検出後, 記憶データ A 1のコピーメヅセージのヘッダ部の情報により, 記憶デ一夕 A 1のキヤヅシュ 制御リストをキヤヅシュ制御表に付加するとともに, キヤヅシュメモリ 2 2に記 憶デ一夕 A 1を書き込む。 記憶データ A 2のキャッシュ制御リストは, 消去され るか, または, invalidated状態にされる。 これにより, キャッシュ装置 2でも, 記憶データ A 1が有効なものとして取り扱われ, 記憶デ一夕 A 2は無効なものと して取り扱われる。  On the other hand, after detecting a collision, the cache management unit 21 of the cache device 2 adds the cache control list of the storage data A1 to the cache control table based on the information in the header of the copy message of the storage data A1, and adds the cache memory. Write the memory data A 1 to 2 2. The cache control list of the stored data A2 is deleted or placed in the invalidated state. As a result, even in the cache device 2, the stored data A1 is treated as valid, and the stored data A2 is treated as invalid.
図 5 Aにおいて, キャッシュ装置 2が優先される場合に, キヤヅシュ装置 2の キヤヅシュ管理部 2 1は, 衝突検出後, 記憶デ一夕 A 2のキャッシュ制御リスト およびキャッシュメモリ 2 2を更新する必要はない。 そして, キャッシュ管理部 2 1は, 記憶デ一夕 A 2のコピーメッセージをキャッシュ装置 1に送信する。 こ のコピーメヅセージは, 衝突検出メッセ一ジとは別に送信されてもよいし, ビギ —バックとして, 衝突検出メッセージとともに送信されてもよい。  In FIG. 5A, when the cache device 2 is prioritized, the cache management unit 21 of the cache device 2 needs to update the cache control list and the cache memory 22 of the storage device A2 after detecting the collision. Absent. Then, the cache management unit 21 transmits a copy message of the stored data A2 to the cache device 1. This copy message may be sent separately from the collision detection message, or may be sent as a background with the collision detection message.
キャッシュ装置 1のキャッシュ管理部 1 1は, このコピ一メッセージのヘッダ 部の情報により記憶データ A 2のキヤヅシュ制御リストをキヤヅシュ制御表に付 加し, キヤヅシュメモリ 1 2に記憶データ A 2を書き込む。 記憶データ A 1のキ ャヅシュ制御リストは,消去されるか, または, invalidated状態にされる。 これ により,キャッシュ装置 1でも,記憶データ A 2が有効なものとして取り扱われ, 記憶データ A 1は無効なものとして取り扱われる。  The cache management unit 11 of the cache device 1 adds the cache control list of the storage data A2 to the cache control table based on the information in the header of the copy message, and writes the storage data A2 to the cache memory 12. The cache control list of the stored data A1 is deleted or placed in the invalidated state. As a result, even in the cache device 1, the storage data A2 is treated as valid, and the storage data A1 is treated as invalid.
なお, キャッシュ装置 1は, キャッシュ装置 2からのコピ一メッセージに対し て, 第 1の確認応答メッセージを返してもよいが, メッセージの通信コストを削 減するために返さない方が好ましい。 第 1の確認応答メッセージが返された場合 には, キャッシュ装置 2は, この第 1の確認応答メッセージを無視すればよい。 図 5 Bおよび図 5 Cでは, キャッシュ装置 1および 2は, ともに記憶データ A 1および記憶データ A 2の双方を保持しているので, 両キャッシュ装置は, 衝突 検出後, 優先される側のキャッシュ装置により受信された記憶データを有効なも のとして取り扱い, 優先されない側のキャッシュ装置により受信された記憶デ一 夕を無効なものとして取り扱う。 Although the cache device 1 may return the first acknowledgment message in response to the copy message from the cache device 2, it is preferable that the cache device 1 does not return the first acknowledgment message in order to reduce the communication cost of the message. If the first acknowledgment message is returned Then, the cache device 2 may ignore this first acknowledgment message. In FIGS. 5B and 5C, both cache devices 1 and 2 hold both storage data A1 and storage data A2. The stored data received by the device is treated as valid, and the stored data received by the non-priority cache device is treated as invalid.
このようにして, 衝突状態が解消され, キヤヅシュ装置 1および 2において, 記憶デ一夕の一貫性および透過性が確保される。  In this way, the collision state is resolved, and in the cache devices 1 and 2, consistency and transparency of the stored data are ensured.
( b ) 第 2の方法  (b) Second method
第 2の方法は, キャッシュ装置 1の記憶デ一夕の受信時刻とキャッシュ装置 2 の記憶デ一夕の受信時刻とを比較し, より早い受信時刻の記憶デ一夕を優先し, 有効なものとする衝突解消方法である。  The second method compares the reception time of the storage data of the cache device 1 with the reception time of the storage data of the cache device 2, and gives priority to the storage data of the earlier reception time. This is a conflict resolution method.
この第 2の方法では, 衝突検出後, キャッシュ装置 1および 2が, 通信回線 L を介して, 受信時刻を通信し合うか, あるいは, コピーメッセ一ジまたは衝突検 出メヅセージにより受信時刻を送信することにより, 相互に受信時刻を通知する こととなる。 そして, より早い受信時刻で受信された記憶デ一夕が優先され, そ の記憶データが有効なものとして取り扱われ, 遅い受信時刻で受信された記憶デ —夕が無効なものとして取り扱われることとなる。 コピーメヅセージまたは衝突 メヅセージにより受信時刻を通知する場合には, これらのメヅセージのへヅダ部 またはデ一夕部に時刻を格納する領域が設けられる。  In the second method, after detecting a collision, the cache devices 1 and 2 communicate the reception time via the communication line L, or transmit the reception time by a copy message or a collision detection message. As a result, the reception time is mutually notified. Then, the storage data received at the earlier reception time is prioritized, the storage data is treated as valid, and the storage data received at the later reception time is treated as invalid. Become. When the reception time is notified by a copy message or a collision message, an area for storing the time is provided in the header or data section of these messages.
なお, 第 2の方法では, キャッシュ装置 1および 2の双方の時刻が同期されて いることが前提となる。 また, 第 1の方法と同様にして, 図 5 Aにおいて, キヤ ヅシュ装置 1が優先される場合には, キヤッシュ装置 2からキヤヅシュ装置 1に 言 3憶デ一夕 A 2のコピーメヅセージが送信されることとなる。 図 5 Bおよび図 5 Cでは, キャッシュ装置 1および 2のいずれが優先されても, 双方とも記憶デ一 夕 A 1および A 2を保持しているので, コピーメッセージを新たに送信する必要 はない。  In the second method, it is assumed that the times of both cache devices 1 and 2 are synchronized. Similarly to the first method, in FIG. 5A, when the cache device 1 is prioritized, a copy message of A2 is transmitted from the cache device 2 to the cache device 1. It will be. In Fig. 5B and Fig. 5C, no matter which of cache devices 1 and 2 is prioritized, both of them hold the stored data A1 and A2, so there is no need to newly send a copy message. .
この第 2の方法によっても, 衝突状態が解消され, キャッシュ装置 1および 2 において, 記憶デ一夕の一貫性および透過性が確保される。 ( c ) 第 3の方法 This second method also eliminates the collision state, and ensures consistency and transparency of the stored data in the cache devices 1 and 2. (c) Third method
第 3の方法は, 衝突検出後, 両キャッシュ装置がランダムな時間の経過後, 再 びコピーメヅセージ (再送コピーメッセージ) または再送指示メヅセージを送信 する衝突解消方法である。  The third method is a conflict resolution method in which both cache devices transmit a copy message (retransmission copy message) or a retransmission instruction message again after a random time has elapsed after collision detection.
より早く再送コビ一メヅセージまたは再送指示メヅセージを送信したキヤヅシ ュ装置が優先され, このキャッシュ装置がアクセスホストから受信した記憶デー 夕が有効なものとして取り扱われる。  The cache device that transmitted the retransmission message or the retransmission instruction message earlier has priority, and the stored data received by this cache device from the access host is treated as valid.
ランダムな時間は, たとえば, キャッシュ管理部 1 1および 2 1によりそれぞ れ発生された擬似乱数に基づいて求められた時間である。  The random time is, for example, a time obtained based on pseudo-random numbers generated by the cache management units 11 and 21 respectively.
ランダムな時間の経過後送信されるメヅセ一ジは, 記憶データ A 1または A 2 を含む再送コピーメヅセージであってもよいが, 記憶デ一夕. A 1および A 2を相 手側のキャッシュ装置が既に有する場合には, 通信コストを軽減するために, 記 憶デ一夕を含まず,再送を示すための再送指示メッセージであることが好ましい。 再送コピ一メッセージは, 通常のコピーメッセージと区別するために, ヘッダ 部のタイプが,再送コピーメッセージであることを表す": とされる。 それ以外のヘッダ部の内容は, 通常のコピ一メヅセージのものと同じである。 再送指示メヅセージは, ヘッダ部のみを有し, データ部を有しない。 再送指示 メヅセージのヘッダ部のタイプは,再送指示メヅセージを表す": RETX"であり, ヘッダのアドレス範囲は, 先に送信した記憶データと同一のアドレス範囲とされ る。 これにより, 受信側のキャッシュ装置は, 先に受信した記憶デ一夕について の再送メッセージであることを識別することができる。  The message transmitted after the elapse of the random time may be a retransmitted copy message containing the stored data A1 or A2, but the stored data A.1 and A2 are transmitted to the cache device on the other side. If it already has one, it is preferable to use a retransmission instruction message to indicate retransmission without including data storage in order to reduce communication costs. In order to distinguish the resent copy message from the normal copy message, the type of the header part is a resend copy message. ":". The contents of the other header parts are the normal copy message. The retransmission instruction message has only a header part and no data part.The type of the header part of the retransmission instruction message is ": RETX", which indicates the retransmission instruction message, and the address of the header. The range is set to the same address range as the previously transmitted storage data, so that the cache device on the receiving side can identify the retransmission message for the previously received storage data.
たとえば, 図 5 Aでは, キヤヅシュ装置 1 (キャッシュ管理部 1 1 ) は, ラン ダムな時間の経過後, 再送指示メッセージを通信回線 Lを介してキヤヅシュ装置 2に送信する。 キャッシュ装置 2 (キャッシュ管理部 2 1 ) は, ランダムな時間 の経過後, 記憶デ一夕 A 2を含む再送コピーメヅセ一ジを通信回線 Lを介してキ ャッシュ装置 1に送信する。  For example, in FIG. 5A, the cache device 1 (cache management unit 11) transmits a retransmission instruction message to the cache device 2 via the communication line L after a random time has elapsed. After a random time elapses, the cache device 2 (cache management unit 21) transmits a retransmission copy message including the stored data A2 to the cache device 1 via the communication line L.
キヤヅシュ装置 1が送信する再送指示メヅセージが, キヤヅシュ装置 2が送信 する再送コピーメヅセージより先に送信された場合には, キャッシュ装置 1が優 先され, したがって, 記憶デ一夕 A 1が有効なものとして取り扱われる。 一方, キャッシュ装置 2が送信する再送コピ一メッセージが, キャッシュ装置 1が送信する再送指示メヅセージより先に送信された場合には, キヤヅシュ装置 2が優先され, したがって, 記憶デ一夕 A 2が有効なものとして取り扱われる。 なお, この場合に, キャッシュ装置 1は, 記憶デ一夕 A 2を有しないので, キヤ ッシュ装置 2は, 言 3憶データ A 2をコピーメッセージ等によりキャッシュ装置 1 に送信することとなる。 If the retransmission instruction message transmitted by the cache device 1 is transmitted before the retransmission copy message transmitted by the cache device 2, the cache device 1 takes precedence, and therefore, the storage device A1 is regarded as valid. Will be handled. On the other hand, when the retransmission copy message transmitted by the cache device 2 is transmitted before the retransmission instruction message transmitted by the cache device 1, the cache device 2 has priority, and therefore, the storage device A2 is valid. Is treated as something In this case, since the cache device 1 does not have the storage device A2, the cache device 2 sends the memory A2 to the cache device 1 by a copy message or the like.
キャッシュ装置 1によるランダムな時間とキャッシュ装置 2によるランダムな 時間が同一であり, キャッシュ装置 1が送信する再送指示メッセージと, キヤッ シュ装置 2が送信する再送コピーメヅセ一ジとが, 同時に送信および受信された 場合には, 再びランダムな時間が計時され, 同様の処理が繰り返される。  Since the random time by the cache device 1 and the random time by the cache device 2 are the same, the retransmission instruction message transmitted by the cache device 1 and the retransmission copy message transmitted by the cache device 2 are simultaneously transmitted and received. In this case, a random time is counted again and the same process is repeated.
図 5 Bおよび図 5 Cの場合にも, 同様の処理が実行される。  Similar processing is performed in the case of FIGS. 5B and 5C.
なお, ランダムな時間が経過するまでの間に, 同じアドレス範囲を有する別の 記憶デ一夕がアクセスホス卜から送信され, キヤヅシュ装置 1または 2により受 信される場合がある。 この場合には, 別の記憶デ一夕を受信したキャッシュ装置 1または 2が, 再度コピーメッセージにより, この別の 憶デ一夕を相手方のキ ャッシュ装置に送信することとなる。  Until the random time elapses, another storage device having the same address range may be transmitted from the access host and received by the cache device 1 or 2. In this case, the cache device 1 or 2 that has received another storage device transmits the other storage device to the other cache device again by a copy message.
この第 3の方法によっても, 衝突状態が解消され, キャッシュ装置 1および 2 において, 記憶データの一貫性および透過性が確保される。  This third method also eliminates the collision state, and ensures consistency and transparency of the stored data in cache devices 1 and 2.
なお, キャッシュ装置 1がアクセスホストから受信した言 3憶データおよびキヤ ヅシュ装置 2がアクセスホストから受信した記憶デ一夕の少なくとも一方が複数 バイ トを有する場合には, 複数バイトの記憶デ一夕の一部分に衝突が発生する場 合がある。 この場合には, この衝突が発生した一部分について, 上記衝突検出処 理および回復処理が実行される。  If at least one of the memory data received by the cache device 1 from the access host and the storage data received by the cache device 2 from the access host has a plurality of bytes, the storage data of a plurality of bytes is stored. A collision may occur in a part of the area. In this case, the collision detection processing and the recovery processing are executed for a part where the collision has occurred.
<記憶データの読み出し処理 >  <Read processing of stored data>
アクセスホスト群 4からキャッシュシステム 3に対し, 記憶デ一夕の読み出し 要求があった場合の記憶デ一夕の読み出し処理について説明する。 ここでは, ァ クセスホスト 4 iがキャッシュ装置 1に対して記憶デ一夕の読み出し要求を行つ た場合を説明する。  A description will be given of the process of reading the stored data when the access host group 4 requests the cache system 3 to read the stored data. Here, the case where the access host 4i issues a read request for storage data to the cache device 1 will be described.
アクセスホスト 4 iは, 読み出す記憶デ一夕のアドレス範囲を含む読み出し要 求を, アクセスネヅトワーク 6を介してキヤヅシュ装置 1の入出力部 1 3に送信 する。 この読み出し要求は, 入出力部 1 3からキャッシュ管理部 1 1に与えられ る。 The access host 4i needs a read request including the address range of the storage data to be read. The request is transmitted to the input / output unit 13 of the cache device 1 via the access network 6. This read request is given from the input / output unit 13 to the cache management unit 11.
キャッシュ管理部 1 1は, 読み出し要求に含まれるアドレス範囲の記憶データ がキャッシュメモリ 1 2に存在するかどうかを, キャッシュ制御表に基づいて判 断する。 received状態および invalidated状態にある記憶デ一夕を除き, それ以 外の状態にある記憶データは, キャッシュメモリ 1 2に存在すると判断される。 アドレス範囲に対応する記憶デ一夕の全部または一部が, キャッシュメモリ 1 2に言己憶されていない場合には, キャッシュ管理部 1 1は, キャッシュメモリ 1 2に記憶されていない部分を, 入出力部 1 4およびストレージネットワーク 7を 介して 2次記憶装置群 5の対応する 2次記憶装置から読み出し, キャッシュメモ リ 1 2に記憶する。 また, これに伴い, キャッシュ管理部 1 1は, 2次記憶装置 からキヤヅシュメモリ 1 2に記憶された記憶デ一夕に関するキャッシュ制御リス トを生成し, キャッシュ制御表に付加する。 なお, このキャッシュ制御リストの 状態には "clean" が書き込まれる。  The cache management unit 11 determines whether stored data in the address range included in the read request exists in the cache memory 12 based on the cache control table. Except for the stored data in the received state and the invalidated state, the stored data in other states is determined to exist in the cache memory 12. If all or part of the storage data corresponding to the address range is not stored in the cache memory 12, the cache management unit 11 deletes the part not stored in the cache memory 12. The data is read from the corresponding secondary storage device of the secondary storage device group 5 via the input / output unit 14 and the storage network 7 and stored in the cache memory 12. Along with this, the cache management unit 11 generates a cache control list related to the storage data stored in the cache memory 12 from the secondary storage device and adds it to the cache control table. Note that "clean" is written in the status of this cache control list.
続いて, キャッシュ管理部 1 1は, 読み出し要求に対応する記憶デ一夕を, キ ャッシュメモリ 1 2から読み出し, 入出力部 1 3およびアクセスネットワーク 6 を介してアクセスホスト 4 に送信する。  Subsequently, the cache management unit 11 reads out the storage data corresponding to the read request from the cache memory 12 and transmits it to the access host 4 via the input / output unit 13 and the access network 6.
このとき, 本実施の形態では, キャッシュ装置 1が 2次記憶装置から読み込ん だ記憶デ一夕がキャッシュ装置 2のキャッシュメモリ 2 2に既に存在する場合で あっても, 2次記憶装置から読み出した記憶デ一夕と, キャッシュメモリ 2 2に 存在する記憶データとは同一内容であることが保証されている。 したがって, キ ャヅシュ装置 1と 2との間で記憶デ一夕の一貫性を確認するための確認メッセ一 ジ等を通信する必要はない。 これにより, この通信に伴う通信オーバヘッドおよ び通信コストを削減することができる。 .  At this time, in this embodiment, even if the storage data read from the secondary storage device by the cache device 1 already exists in the cache memory 22 of the cache device 2, the data is read from the secondary storage device. It is guaranteed that the stored data and the stored data in the cache memory 22 have the same contents. Therefore, there is no need to communicate a confirmation message or the like between the cache devices 1 and 2 to confirm the consistency of the stored data. As a result, the communication overhead and communication cost associated with this communication can be reduced. .
なお, アクセスホスト 4 から読み出し要求があった記憶デ一夕が, キヤヅシ ュメモリ 1 2に存在せず, キャッシュメモリ 2 2に存在する場合に, キャッシュ 管理部 1 1は, キャッシュ装置 2 (キャッシュメモリ 2 2 ) からこの記憶デ一夕 を受け取ってもよい。 また, アクセスホスト 4 iにおいて, 読み出され, 受信される言 31tデータの時 間順序が重要な場合には, アクセスホスト 4丄が有する一般的な制御同期機構等 を使用することで時間順序を保証することができる。 If the storage data requested to be read from the access host 4 does not exist in the cache memory 12 but exists in the cache memory 22, the cache management unit 11 operates in the cache device 2 (the cache memory 2). You may receive this memory from 2). When the time order of the read and received word 31t data at the access host 4i is important, the time sequence can be changed by using a general control synchronization mechanism of the access host 4 丄. Can be guaranteed.
く負荷分散処理 >  Load distribution processing>
上記の説明では, アクセスホストから記憶データを受信したキャッシュ装置が 2次記憶装置に記憶データの書き込み (フラッシュ) を行っているが, このフラ ヅシュを 2つのキヤヅシュ装置間で分散させることもできる。  In the above description, the cache device that has received the storage data from the access host writes (flashes) the storage data to the secondary storage device. However, this flash can be distributed between the two cache devices.
たとえば, 一方のキヤヅシュ装置の 2次記憶装置へのアクセス頻度が他方のキ ャヅシュ装置のそれよりも高い場合等には, 書き込み処理を他方のキヤヅシュ装 置に分担させることができる。 また, 2つのキャッシュ装置の処理能力や性能に 差がある場合も, 能力や性能の高いキヤッシュ装置により多くの書き込み処理を 行わせることもできる。 これにより, キャッシュ装置 1および 2の間で負荷分散 が図られる。  For example, when the access frequency of one cache device to the secondary storage device is higher than that of the other cache device, the write process can be shared by the other cache device. Also, when there is a difference between the processing capacity and performance of the two cache devices, more write processing can be performed by a cache device with higher performance and performance. As a result, load distribution between cache devices 1 and 2 is achieved.
このような負荷分散を行うために, キャッシュ管理部 1 1および 2 1は, とも に負荷を計測し, 制御メヅセージ (上述したコピーメヅセージ, 確認応答メッセ —ジ等とは異なる他の制御メッセージ)により定期的に負荷を相互に通知し合う。 計測される負荷としては, たとえば 2次記憶装置群 5への書き込み回数や書き込 んだデ一夕量 (バイ ト数, ブロック数) 等が含まれる。 そして, 負荷の低いキヤ ヅシュ装置がフラッシュを実行する。  In order to perform such load distribution, the cache management units 11 and 21 both measure the load and periodically use control messages (other control messages different from the copy message and acknowledgment message described above). Mutually inform the load. The measured load includes, for example, the number of times of writing to the secondary storage device group 5 and the amount of data written (the number of bytes and blocks). Then, the cache device with a low load executes the flush.
図 6は, 負荷分散が行われた場合の記憶デ一夕の書き込み処理の流れを示すシ —ケンス図である。  FIG. 6 is a sequence diagram showing a flow of a write process in a storage device when load distribution is performed.
キヤヅシュ装置 1がアクセスホスト 4 iから記憶デ一夕を受信すると, キヤヅ シュ管理部 1 1は, 図 4のステップ S 1と同様に, キヤヅシュ制御リストを生成 するとともに, キャッシュメモリ 1 2に言 3憶デ一夕を言 3憶する (S 4 0 ) 。  When the cache device 1 receives the stored data from the access host 4 i, the cache management unit 11 generates a cache control list and stores the cache control list in the cache memory 12, as in step S 1 in FIG. The memory of the memory is remembered (S40).
続いて, キャッシュ管理部 1 1は, コピーメッセージをキャッシュ装置 2に送 信する (S 4 1 ) 。 ここで, キャッシュ管理部 1 1は, キャッシュ装置 1の負荷 がキヤヅシュ装置 2の負荷よりも高い場合には, コピ一メヅセージのへッダ部の フラッシュ権限にキャッシュ装置 2を指定する。  Subsequently, the cache management unit 11 sends the copy message to the cache device 2 (S41). Here, when the load of the cache device 1 is higher than the load of the cache device 2, the cache management unit 11 specifies the cache device 2 as the flush authority of the header of the copy message.
キャッシュ管理部 2 1は, フラッシュ権限にキャッシュ装置 2が指定されたコ ピーメッセージを受信すると, キャッシュ制御リストを生成するとともに, 生成 したキャッシュリストの状態を, 通常の場合に設定される non-volatile状態では なく, dirty状態に設定し, コピーメッセージに含まれる記憶デ一夕をキヤヅシ ュメモリ 2 2に記憶する (S 4 2 )。 The cache management unit 21 receives the command for which the cache device 2 is specified for the flash right. When a copy message is received, a cache control list is generated, and the state of the generated cache list is set to a dirty state instead of the non-volatile state normally set, and the storage data included in the copy message is stored. The evening is stored in cache memory 22 (S42).
続いて, キャッシュ管理部 2 1は, 第 1の確認応答メッセージをキヤヅシ装置 1に返信する (S 8 )。  Subsequently, the cache management unit 21 returns a first acknowledgment message to the cache device 1 (S8).
キヤヅシュ管理部 1 1は, 第 1の確認応答メヅセージを受信すると, キヤヅシ ュ制御リストの状態 dirty状態ではなく, non-volatile状態に設定し, また, ホス ト確認応答メッセージをアクセスホスト 4 iに送信する (S 4 3 ) 。  When the cache management unit 11 receives the first acknowledgment message, it sets the cache control list to a non-volatile state instead of the dirty state, and sends a host acknowledgment message to the access host 4i. Yes (S43).
その後, キャッシュ管理部 2 1は, 適当なタイミングで dirty状態の記憶デ一 夕を flushing状態にして, 2次記憶装置に書き込む(S 4 4 ) 。以降のステップ S 4 5〜 S 4 8の処理は, キヤヅシュ管理部 1 1がキヤヅシュ制御リストの状態 を non-volatileから cleanにし, キャッシュ管理部 2 1がキャッシュ制御リスト の状態を flushingから flushed msgおよび cleanにする点が異なることを除いて, 図 4に示すステップ S 5〜S 1 0の対応する処理と同じである。  Thereafter, the cache management unit 21 changes the dirty storage state to the flushing state at an appropriate timing, and writes the flushed state to the secondary storage unit (S44). In the subsequent steps S45 to S48, the cache management unit 11 changes the state of the cache control list from non-volatile to clean, and the cache management unit 21 changes the state of the cache control list from flushing to flushed msg. This is the same as the corresponding processing of steps S5 to S10 shown in FIG.
このようにして, 適切なァドレス範囲の記憶デ一夕のフラヅシュ権限を他方の キャッシュ装置に移すことにより, 負荷分散が図られる。  In this way, the load can be distributed by transferring the flash authority for storing data in the appropriate address range to the other cache device.
なお, 上記では, 相手のキャッシュ装置にフラッシュ権限を与えているが, 自 己のキヤヅシュ装置にフラヅシュ権限があることを, 相手のキヤヅシュ装置にコ ピ一メッセージ等の制御メヅセージによって通知することもできる。  In the above description, the flush authority is given to the other cache device. However, the fact that the own cache device has the flash authority can be notified to the other cache device by a control message such as a copy message. .
また, 負荷の値を, 各キャッシュ装置の性能に対する負荷の比とすることもで きる。 たとえば, キャッシュ装置 1は, 自己の負荷の値を自己の性能の値により 除算し (すなわち (キャッシュ装置 1の負荷の値) ÷ (キャッシュ装置 1の性倉 g の値) ) , この除算結果をキャッシュ装置 2に送信し, キャッシュ装置 2も, 自 装置の除算結果をキャッシュ装置 1に送信する。 そして, 2つの比のうち, 低い 比の値を有するキヤッシュ装置にフラッシュ権限が付与されるようにすることも できる。  Also, the load value can be the ratio of the load to the performance of each cache device. For example, the cache device 1 divides its own load value by its own performance value (that is, (the load value of the cache device 1) ÷ (the value of gender g of the cache device 1)), and calculates the result of this division. The data is transmitted to the cache device 2, and the cache device 2 also transmits the division result of the own device to the cache device 1. The flushing authority may be given to a cache device having a lower value of the two ratios.
<障害監視および回復装置 >  <Failure monitoring and recovery device>
障害監視部 1 6および 2 6は, 前述したように, 他方のキャッシュ装置の動作 状況を監視し, 障害が発生したかどうかを判断する。 たとえば, 障害監視部 1 6 および 2 6は, 相互に一定時間間隔で, 他方のキャッシュ装置に通信回線 Lを介 して障害検出メッセージを送信し合う。 そして, 障害監視部 1 6および 2 6は, 所定の時間を経過しても, 他方のキャッシュ装置から送信される障害検出メッセ —ジを受信しない場合には, 他方のキャッシュ装置に障害が発生していると判断 する。 As described above, the failure monitoring units 16 and 26 operate the other cache unit. Monitor the situation and determine if a failure has occurred. For example, the failure monitoring units 16 and 26 send failure detection messages via the communication line L to the other cache device at fixed time intervals. If the failure monitoring units 16 and 26 do not receive the failure detection message transmitted from the other cache device even after the lapse of a predetermined time, a failure occurs in the other cache device. Judge that it is.
以下, キャッシュ装置 1に障害が発生し, 障害監視部 2 6がこの障害を検出し た場合を例にとり, 障害検出時の回復処理について説明する。  The following describes recovery processing when a failure is detected in the cache device 1 and the failure monitoring unit 26 detects this failure.
キヤヅシュ装置 1の障害が検出されると, キヤヅシュ装置 1がキヤヅシュメモ リ 1 2から 2次記憶装置群 5に書き込む予定である dirty状態の記憶デ一夕を, キヤヅシュ装置 2がキヤヅシュ装置 1に代わって 2次記憶装置に書き込む必要が ある。  When the failure of the cache device 1 is detected, the cache device 2 replaces the cache device 1 with the dirty state storage data that is to be written from the cache memory 12 to the secondary storage device group 5. Must be written to secondary storage.
このため, 障害監視部 2 6は, 障害検出後, キャッシュ管理部 2 1が保持する キャッシュ制御表 (すなわち, キャッシュメモリ 2 2に記憶された記憶デ一夕に 関するキャッシュ制御表) に基づいて, non-volatile状態にある記憶デ一夕の状 態を dirty状態に書き換える。これにより, dirty状態に変更された記憶デ一夕は, キャッシュ管理部 2 1によって, 2次記憶装置群 5に書き込まれる (フラッシュ される) こととなる。  For this reason, the failure monitoring unit 26, based on the cache control table held by the cache management unit 21 after the failure is detected (that is, the cache control table related to the stored data stored in the cache memory 22), Rewrite the non-volatile state of storage data to dirty state. As a result, the storage data changed to the dirty state is written (flushed) to the secondary storage device group 5 by the cache management unit 21.
キャッシュ装置 1によって 2次記憶装置群 5に書き込み途中にある flushing 状態の記憶デ一夕も, そのどの部分までが 2次記憶装置群 5に書き込み済みかを 判断することはできない。このキャッシュ装置 1における flushing状態の記憶デ —夕も, キヤヅシュ装置 2においては, non-volatile状態の記憶デ一夕としてキ ャヅシュメモリ 2 2に記憶されている。 したがって, この flushing状態の記憶デ —夕についても, 上記同様に, キャッシュ装置 2において, non-volatile状態か ら dirty状態に変更されることにより, キャッシュ装置 2によって, 2次記憶装 置に確実に記憶されることとなる。  Even when the cache device 1 is writing data to the secondary storage device group 5 in the middle of writing to the secondary storage device group 5, it is impossible to determine which portion of the data has been written to the secondary storage device group 5. The storage device in the flushing state in the cache device 1 is also stored in the cache memory 22 in the cache device 2 as the storage device in the non-volatile state. Therefore, the storage device in the flushing state is also changed from the non-volatile state to the dirty state in the cache device 2 in the same manner as described above, so that the cache device 2 can reliably store the data in the secondary storage device. It will be memorized.
キヤヅシュ装置 1が障害から回復した場合, または, キャッシュ装置 1が他の バヅクアツプ用のキヤヅシュ装置に切り替えられた場合には, 一方のキヤヅシュ 装置にのみ dirty状態の記憶デ一夕が存在する状況が起こり得る。 したがって, このような状況が起こらないようにするために, キャッシュメモリ 2 2に記憶さ れた全てのキヤッシュデ一夕が clean状態にならない限り, キヤッシュ装置 1を 復帰させないよう,キャッシュ装置 1の復帰タイミングが制御される。あるいは, キャッシュ装置 1の復帰前までの dirty状態にある記憶デ一夕を復帰後, キヤヅ シュ装置 1に送信してもよい。 If the cache device 1 recovers from the failure, or if the cache device 1 is switched to another backup cache device, a situation may occur in which only one of the cache devices has a dirty state storage device. obtain. Therefore, In order to prevent such a situation from occurring, the return timing of the cache device 1 is controlled so that the cache device 1 is not returned unless all cache data stored in the cache memory 22 is in the clean state. Is done. Alternatively, the storage device in a dirty state before the cache device 1 returns may be transmitted to the cache device 1 after the recovery.
なお, キャッシュ装置 2に障害が発生した場合には, キャッシュ装置 1の障害 監視部 1 6が上述した障害監視部 2 6と同様の処理を実行することとなる。 産業上の利用の可能性  When a failure occurs in the cache device 2, the failure monitoring unit 16 of the cache device 1 executes the same processing as the failure monitoring unit 26 described above. Industrial applicability
本発明は, コンピュータ等のアクセスホスト (群) と 2次記憶装置 (群) との 間に配置されるキャッシュシステムに利用することができる。  INDUSTRIAL APPLICABILITY The present invention can be used for a cache system arranged between an access host (group) such as a computer and a secondary storage device (group).
本発明によると, 2つのキャッシュ装置がそれそれ独立して, アクセスホスト から記憶デ一夕を受信し, 処理するので, 単一のキャッシュ装置に対してほぼ 2 倍の処理能力を得ることができ, 単一キヤッシュ装置のボトルネヅクを解消でき る。  According to the present invention, since the two cache devices independently receive and process the storage data from the access host, almost double the processing capacity can be obtained for a single cache device. Therefore, the bottleneck of a single cache device can be eliminated.
また, 両キャッシュ装置に同じ記憶デ一夕が記憶されるので, キャッシュシス テムにおける記憶デ一夕の不揮発化が可能になる。 その結果, 一方のキャッシュ 装置に障害が発生しても, 記憶データの喪失が防止される。  Also, since the same storage data is stored in both cache devices, the storage data in the cache system can be made non-volatile. As a result, even if a failure occurs in one of the cache devices, loss of stored data is prevented.
さらに, 両キヤヅシュ装置間で衝突解消処理が実行されるので, 両キヤッシュ 装置間での記憶データの一貫性および透過性が確保される。 したがって, 記憶デ —夕の読み出しごとに, 両キャッシュ装置でその記憶データに対する一貫性を確 認する必要がなく, 確認のためのオーバへッドをなくすことができる。  Furthermore, since the conflict resolution processing is executed between the two cache devices, consistency and transparency of the stored data between the two cache devices are ensured. Therefore, each cache device does not need to check the consistency of the stored data each time the data is read in the evening, eliminating the overhead for checking.
結果として, 性能を向上させながら, 記憶データの一貫性と透過性を実現する ことが可能となる。  As a result, it is possible to achieve consistency and transparency of stored data while improving performance.

Claims

請求の範囲 . 2つのキヤヅシュ装置を有し, アクセスホストまたは 2次記憶装置から与え られるデ一夕を記憶するとともに, 前記ァクセスホストからのデ一夕を前記 2 次記憶装置に言己憶させるキャッシュシステムにおける各キャッシュ装置であつ て,  Claims: A cache system having two cache devices, storing data provided from an access host or a secondary storage device, and recalling data from the access host in the secondary storage device. Each cache device in
前記アクセスホストから与えられる第 1のデ一夕を入力するデータ入力部と, 他方のキャッシュ装置が前記アクセスホストから入力し, 自キャッシュ装置 に送信した第 2のデータを受信するデータ受信部と,  A data input unit for inputting a first data provided from the access host; a data receiving unit for receiving the second data input by the other cache device from the access host and transmitted to the own cache device;
前記第 1のデータおよび前記第 2のデータの双方またはいずれか一方を記憶 するキャッシュ記憶部と,  A cache storage unit that stores the first data and / or the second data,
前記キャッシュ記憶部を管理するキャッシュ管理部と,  A cache management unit that manages the cache storage unit;
前記第 1のデ一夕を前記他方のキヤッシュ装置に送信するデ一夕送信部と, 前記第 1のデータまたは前記第 2のデ一夕を前記 2次記憶装置に出力するデ 一夕出力部と,  A data transmission unit that transmits the first data to the other cache device; and a data output unit that outputs the first data or the second data to the secondary storage device. When,
を有するキャッシュ装置。 . 請求の範囲第 1項において,  A cache device having: In claim 1,
前記データ送信部が前記第 1のデ一夕の送信を完了するまでに, 前記デ一夕 入力部が, 該第 1のデータの前記 2次記憶装置上のアドレス範囲と同一のアド レス範囲を有し, 該第 1のデ一夕と内容の異なる第 3のデ一夕をアクセスホス トから入力した場合には, 前記キャッシュ管理部は, 前記第 3のデ一夕を有効 なものとして前記キヤッシュ記憶部に記憶し,前記第 1のデ一夕を無効なもの として取り扱う,  By the time the data transmitting unit completes the transmission of the first data, the data input unit sets the same address range as the address range of the first data on the secondary storage device. When the third host having a different content from the first host is input from the access host, the cache management unit determines that the third host is valid, and Stored in the cache storage unit, and treats the first data as invalid.
キャッシュ装置。 . 請求の範囲第 1項または第 2項において,  Cache device. In claims 1 or 2,
前記デ一夕入力部が前記第 1のデ一夕を入力してから前記データ送信部が前 記第 1のデ一夕の送信を完了するまでに, 前記デ一夕受信部が前記第 2のデ一 夕を受信した場合には, 前記第 1のデ一夕および前記第 2のデ一夕の双方の前 記 2次記憶装置上のアドレス範囲と, 双方のデータの内容とに基づいて, 前記 第 1のデ一夕および前記第 2のデータの衝突の有無を判断する衝突検出部と, 前記衝突検出部が衝突を検出すると, 衝突が発生したことを示す衝突検出メ ヅセージを前記他方のキヤヅシュ装置に送信する衝突検出メッセ一ジ送信部と, 前記他方のキヤヅシュ装置からの前記衝突検出メヅセ一ジを受信する衝突検 出メッセージ受信部と, After the data input unit inputs the first data, and before the data transmission unit completes the transmission of the first data, the data reception unit receives the second data. No one In the case of receiving the evening, based on the address range on the secondary storage device of both the first data and the second data and the content of both data, A collision detection unit that determines whether there is a collision between the first data and the second data; and, when the collision detection unit detects a collision, a collision detection message indicating that a collision has occurred is transmitted to the other cache device. A collision detection message transmitting unit that transmits the collision detection message from the other cache device; and a collision detection message receiving unit that receives the collision detection message from the other cache device.
をさらに有するキヤヅシュシ装置。 4 . 請求の範囲第 3項において,  A cache device further comprising: 4. In claim 3,
前記衝突検出部は, 前記衝突検出メッセージ受信部が前記他方のキヤヅシュ 装置から前記衝突検出メッセージを受信した場合も衝突を検出する,  The collision detection unit also detects a collision when the collision detection message receiving unit receives the collision detection message from the other cache device.
キャッシュ装置。 5 . 請求の範囲第 3項または第 4項において,  Cache device. 5. In Claims 3 or 4,
前記キャッシュ管理部は, 前記衝突検出部が衝突を検出すると, 前記第 1の デ一夕および前記第 2のデ一夕のうち, あらかじめ定められた優先順位に基づ いて優先されるデ一夕を有効なものとして取り扱い, 他方を無効なものとして 取り扱う,  The cache management unit, when the collision detection unit detects a collision, among the first data and the second data, a data which is prioritized based on a predetermined priority. Treats as valid, treats the other as invalid,
キャッシュ装置。  Cache device.
6 . 請求の範囲第 3項または第 4項において, 6. In Claims 3 or 4,
前記キャッシュ管理部は, 前記衝突検出部が衝突を検出すると, 前記第 1の デ一夕が前記データ入力部に入力された時刻および前記第 2のデータが前記他 方のキャッシュ装置のデータ入力部に入力された時刻のうち, 早い時刻を有す るデ一夕を有効なものとして取り扱い, 遅い時刻を有するデ一夕を無効なもの として取り扱う,  The cache management unit, when the collision detection unit detects a collision, stores the time at which the first data was input to the data input unit and the second data at the data input unit of the other cache device. Of the times entered in, the one with the earlier time is treated as valid and the one with the later time is treated as invalid.
キャッシュ装置。 Cache device.
7 . 請求の範囲第 3項または第 4項において, 7. In Claims 3 or 4,
前記衝突検出部が衝突を検出すると, ランダムな時間の経過後に, 前記第 1 のデ一夕, または, 前記第 1のデ一夕の再送を示す再送メッセージを送信する デ—夕ノメヅセージ再送部と,  When the collision detection unit detects a collision, after a lapse of a random time, the data transmission unit transmits the first data or a retransmission message indicating retransmission of the first data. ,
前記他方のキャッシュ装置の前記デ一夕 メヅセージ再送部から送信された 前記第 2のデ一夕または前記第 2のデ一夕の再送メヅセージを受信するデ一夕 メッセ一ジ受信部と,  A data message receiving unit that receives the second data or the retransmitted message of the second data transmitted from the data message retransmitting unit of the other cache device;
をさらに有し,  Further has
前記キヤヅシュ管理部は,前記デ一夕 Zメッセ一ジ再送部による再送時刻と, 前記デ一タノメッセージ受信部による受信時刻とのうち, 早い時刻に対応する デ一夕を有効なものとして取り扱い, 遅い時刻に対応するデ一夕を無効なもの として取り扱う,  The cache management unit treats the data corresponding to the earlier time out of the retransmission time by the data Z message retransmitter and the reception time by the data message receiver as valid. Treats a night that corresponds to a later time as invalid,
キャッシュ装置。 8 . 請求の範囲第 7項において,  Cache device. 8. In claim 7,
デ一夕ノメヅセージ再送部は, 前記デ一夕/メッセージ再送部による再送時 刻と, 前記データ/メヅセージ受信部による受信時刻とが同時刻の場合には, 再びランダムな時間の経過後, 再送を繰り返す,  If the retransmission time of the data / message retransmitting unit is the same as the reception time of the data / message receiving unit, the data retransmission unit retransmits the data again after a random time elapses. Repeat,
キャッシュ装置。  Cache device.
9 . 請求の範囲第 1項から第 8項のいずれか 1項において, 9. In any one of claims 1 to 8,
前記データ出力部が前記第 1のデ一夕または前記第 2のデ一夕を前記 2次記 憶装置に出力した後に, 該出力が完了したことを示すフラッシュメヅセ一ジを 前記他方のキャッシュ装置に送信するフラッシュメッセ一ジ送信部と, 前記他方のキャッシュ装置から送信されたフラッシュメヅセージを受信する フラッシュメヅセージ受信部と,  After the data output unit outputs the first data or the second data to the secondary storage device, a flash message indicating the completion of the output is stored in the other cache. A flash message transmitting unit for transmitting to the device; a flash message receiving unit for receiving a flash message transmitted from the other cache device;
をさらに有するキャッシュ装置。  A cache device further comprising:
1 0 . 請求の範囲第 9項において, 前記キヤヅシュ管理部は, 前記フラッシュメヅセージ送信部による前記フラ ヅシュメヅセージの送信後, または, 前記フラヅシュメヅセ一ジ受信部による 前記フラッシュメヅセージの受信後, 該フラッシュメヅセージに対応する前記 第 1のデータまたは前記第 2のデ一夕を無効なものとして取り扱う, 10. In claim 9, The cache management unit, after transmitting the flash message by the flash message transmitting unit, or after receiving the flash message by the flash message receiving unit, the first data or the flash message corresponding to the flash message. Treat the second day as invalid,
キャッシュ装置。  Cache device.
1 1 . 請求の範囲第 1項から第 1 0項のいずれか 1項において, 1 1. In any one of claims 1 to 10,
前記デ一夕送信部は, 前記第 1のデータとともに, 該第 1のデ一夕の前記 2 次記憶装置への出力を 、ずれのキヤッシュ装置が行うかを示す第 1のフラッシ ュ権限情報を送信し,  The data transmission unit, together with the first data, outputs the first data to the secondary storage device, and outputs first flash authority information indicating whether or not the shift cache device performs the output. Send,
前記デ一夕受信部は, 前記第 2のデータとともに, 該第 2のデータの前記 2 次記憶装置への出力をいずれのキヤッシュ装置が行うかを示す第 2のフラヅシ ュ権限情報を受信し,  The data receiving unit receives, together with the second data, second flash authority information indicating which cache device outputs the second data to the secondary storage device,
前記デ一夕出力部は, 前記第 1のフラッシュ権限情報が自キャッシュ装置を 示している場合には, 前記第 1のデ一夕を前記 2次記憶装置に出力し, 前記第 2のフラッシュ権限情報が自キヤッシュ装置を示している場合には, 前記第 2 のデータを前記 2次記憶装置に出力する,  The data output unit outputs the first data to the secondary storage device when the first flash right information indicates the own cache device, and outputs the second flash right. Outputting the second data to the secondary storage device if the information indicates the own cache device;
キャッシュ装置。 1 2 . 請求の範囲第 1 1項において,  Cache device. 1 2. In claim 11,
自キヤヅシュ装置の負荷を計測し , 計測した前記負荷の値を他方のキヤヅシ ュ装置に送信する負荷情報送信部と,  A load information transmitting unit for measuring the load of the own cache device and transmitting the measured load value to the other cache device;
前記他方のキヤヅシュ装置から送信された, 他方のキヤッシュ装置の負荷の 値を受信する負荷情報受信部と,  A load information receiving unit that receives a load value of the other cache device transmitted from the other cache device;
前記自キャッシュ装置の負荷の値と前記他方のキャッシュ装置の負荷の値と を比較し, 負荷の値の小さなキャッシュ装置に, 前記第 1の記憶デ一夕または 前記第 2の記憶デ一夕のフラヅシュ権限を設定するフラヅシュ権限設定部と, をさらに有するキャッシュ装置。 The load value of the own cache device is compared with the load value of the other cache device, and the cache device having the smaller load value is stored in the first storage device or the second storage device. A cache device further comprising: a flash right setting unit for setting a flash right.
1 3 . 請求の範囲第 1 2項において, 1 3. In claim 12,
前記負荷の値が各キヤッシュ装置の性能に対する負荷の比である, キヤッシ ュ装置。 1 4 . 請求の範囲第 1項から第 1 3項のいずれか 1項において,  The cache device, wherein the value of the load is a ratio of the load to the performance of each cache device. 14. In any one of claims 1 to 13,
他方のキャッシュ装置の障害発生を監視し, 該障害発生を検出すると, 前記 キヤッシュ記憶部に記憶された前記第 1のデータのうち, 前記デ一夕出力部ま たは他方のキヤッシュ装置のデ一夕出力部が前記 2次記憶装置への出力を完了 しておらず, かつ, 前記デ一夕送信部が他方のキャッシュ装置への送信を完了 したもの, および, 前記キャッシュ記憶部に記憶された前記第 2のデ一夕のう ち, 前記データ出力部または他方のキヤッシュ装置のデ一夕出力部が前記 2次 記憶装置への出力を完了していないものを, 前記デ一夕出力部が前記 2次記憶 装置に出力するように制御する障害監視部をさらに有する,  Monitoring the occurrence of a failure in the other cache device, and detecting the occurrence of the failure, among the first data stored in the cache storage unit, the data in the data output unit or the data in the other cache device. The evening output unit has not completed the output to the secondary storage device, and the data transmission unit has completed the transmission to the other cache device, and has been stored in the cache storage unit. Of the second data, the data output unit or the data output unit of the other cache device that has not completed the output to the secondary storage device, A fault monitoring unit that controls output to the secondary storage device;
キャッシュ装置。  Cache device.
1 5 . 請求の範囲第 1項から第 1 4項のいずれか 1項において, 15. In any one of claims 1 to 14,
前記 2次記憶装置のアドレス範囲を含むデ一夕読み出し要求を前記アクセス ホストから受け取る読み出し要求入力部と,  A read request input unit for receiving a data read request including the address range of the secondary storage device from the access host;
前記読み出し要求に含まれるアドレス範囲に対応するデ一夕が前記キヤヅシ ュ記憶部に有効なデ一夕として記憶されている場合には, 該デ一夕を前記キヤ ヅシュ記憶部から読み出し,前記キャッシュ記憶部に存在しない場合,または, 有効なデータとして記憶されていない場合には, 前記 2次記憶装置から読み出 すデ一夕読み出し部と,  When the data corresponding to the address range included in the read request is stored as a valid data in the cache storage unit, the data is read from the cache storage unit and the cache is read. If it does not exist in the storage unit, or if it is not stored as valid data, a data read unit that reads from the secondary storage device;
前記データ読み出し部により読み出されたデ一夕を前記アクセスホストに送 信する読み出しデータ送信部と,  A read data transmitting unit for transmitting the data read by the data reading unit to the access host;
をさらに有するキャッシュ装置。  A cache device further comprising:
1 6 . 請求の範囲第 1 5項において, 16. In claim 15,
前記デ一夕管理部は, 前記データ読み出し部により前記 2次記憶装置から読 み出されたデ一夕を,有効なデ一夕として,前記キャッシュ記憶部に記憶する, キャッシュ装置。 7 . 2つのキャッシュ装置を有し, アクセスホストまたは 2次記憶装置から与 えられるデ一夕を言己憶するとともに, 前記アクセスホストからのデ一夕を前言己The data management unit reads the data from the secondary storage device by the data reading unit. A cache device that stores the extracted data as a valid data in the cache storage unit. 7. It has two cache devices, remembers the data given from the access host or the secondary storage device, and remembers the data from the access host.
2次記憶装置に記憶させるキャッシュシステムであって, A cache system for storing data in a secondary storage device,
前記 2つのキヤヅシュ装置のそれそれは,  Each of the two cache devices is
前記アクセスホストから与えられる第 1のデ一夕を入力するデ一夕入力部と, 他方のキャッシュ装置が前記アクセスホストから入力し, 自キャッシュ装置 に送信した第 2のデ一夕を受信するデ一夕受信部と,  A data input unit for inputting a first data provided from the access host; and a data receiving unit for receiving the second data transmitted from the access host to the other cache device and transmitted to the own cache device. One night receiver,
前記第 1のデ一夕および前記第 2のデ一夕の双方またはいずれか一方を記憶 するキャッシュ記憶部と,  A cache storage unit for storing one or both of the first data and the second data;
前記キャッシュ記憶部を管理するキャッシュ管理部と,  A cache management unit that manages the cache storage unit;
前記第 1のデ一夕を前記他方のキヤヅシュ装置に送信するデータ送信部と, ' 前記第 1のデ一夕または前記第 2のデ一夕を前記 2次記憶装置に出力するデ 一夕出力部と,  A data transmitting unit that transmits the first data to the other cache device; and a data output unit that outputs the first data or the second data to the secondary storage device. Department and
を有するキヤヅシュシステム。 8 . 2つのキャッシュ装置を有し, アクセスホストまたは 2次記憶装置から与 えられるデータを記憶するとともに, 前記アクセスホストからのデ一夕を前記 A cache system having 8. It has two cache devices, stores data given from an access host or a secondary storage device, and stores data from the access host in the
2次記憶装置に記憶させるキャッシュシステムにおけるキャッシュ方法であつ て, A cache method in a cache system for storing data in a secondary storage device,
前記アクセスホストからデータを受信した一方のキャッシュ装置は, 該デ一 夕を自装置のキヤヅシュメモリに記憶するとともに, 該デ一夕を他方のキヤッ シュ装置に送信し,  One cache device that has received the data from the access host stores the data in its own cache memory and transmits the data to the other cache device,
前記他方のキヤッシュ装置は, 前記一方のキヤヅシュ装置から送信された前 記データを受信して, 自装置のキャッシュメモリに記憶し,  The other cache device receives the data transmitted from the one cache device and stores the data in its own cache memory.
前記一方のキヤヅシュ装置または前記他方のキヤヅシュ装置は, 前記デ一夕 を前記 2次記憶装置に出力する, キヤヅシュ方法。 The one cache device or the other cache device outputs the data to the secondary storage device; Cache method.
PCT/JP2002/003973 2002-04-22 2002-04-22 Cache device WO2003090089A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/JP2002/003973 WO2003090089A1 (en) 2002-04-22 2002-04-22 Cache device
JP2003586765A JPWO2003090089A1 (en) 2002-04-22 2002-04-22 Cache device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2002/003973 WO2003090089A1 (en) 2002-04-22 2002-04-22 Cache device

Publications (1)

Publication Number Publication Date
WO2003090089A1 true WO2003090089A1 (en) 2003-10-30

Family

ID=29227611

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2002/003973 WO2003090089A1 (en) 2002-04-22 2002-04-22 Cache device

Country Status (2)

Country Link
JP (1) JPWO2003090089A1 (en)
WO (1) WO2003090089A1 (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008059558A (en) * 2006-06-30 2008-03-13 Seagate Technology Llc Failover and failback of write cache data in dual active controllers
JP2009134716A (en) * 2007-11-28 2009-06-18 Internatl Business Mach Corp <Ibm> Method for giving sharing cache line in multiprocessor data processing system, computer readable medium and multiprocessor data processing system
JP2009140153A (en) * 2007-12-05 2009-06-25 Fujitsu Ltd Storage management device, storage system control device, storage management program, and storage system
WO2010070727A1 (en) * 2008-12-16 2010-06-24 富士通株式会社 Virtual tape device, and program and method for copying virtual tape data
JP2011164919A (en) * 2010-02-09 2011-08-25 Ntt Comware Corp Cache system and cache access method
JP2012168722A (en) * 2011-02-14 2012-09-06 Toshiba Corp Arbitration device, storage device, information processor and program
EP2921965A1 (en) 2014-03-19 2015-09-23 Fujitsu Limited Information processing device and shared memory management method
US10198365B2 (en) 2015-01-20 2019-02-05 Fujitsu Limited Information processing system, method and medium

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04255041A (en) * 1990-08-13 1992-09-10 Hewlett Packard Co <Hp> Database controlling method
JPH0784847A (en) * 1993-09-17 1995-03-31 Fujitsu Ltd Disk copying processing system
JPH09146842A (en) * 1995-11-20 1997-06-06 Hitachi Ltd Storage subsystem
JP2001256003A (en) * 2000-03-10 2001-09-21 Hitachi Ltd Disk array controller, its disk array control unit and its expanding method
JP2001318766A (en) * 2000-05-08 2001-11-16 Nec Software Shikoku Ltd Disk array device and cache memory control method
JP2002082833A (en) * 2000-09-08 2002-03-22 Hitachi Ltd High speed data writing system using nonvolatile cache memory

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04255041A (en) * 1990-08-13 1992-09-10 Hewlett Packard Co <Hp> Database controlling method
JPH0784847A (en) * 1993-09-17 1995-03-31 Fujitsu Ltd Disk copying processing system
JPH09146842A (en) * 1995-11-20 1997-06-06 Hitachi Ltd Storage subsystem
JP2001256003A (en) * 2000-03-10 2001-09-21 Hitachi Ltd Disk array controller, its disk array control unit and its expanding method
JP2001318766A (en) * 2000-05-08 2001-11-16 Nec Software Shikoku Ltd Disk array device and cache memory control method
JP2002082833A (en) * 2000-09-08 2002-03-22 Hitachi Ltd High speed data writing system using nonvolatile cache memory

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008059558A (en) * 2006-06-30 2008-03-13 Seagate Technology Llc Failover and failback of write cache data in dual active controllers
JP2010140493A (en) * 2006-06-30 2010-06-24 Seagate Technology Llc Failover and failback of write cache data in dual active controller
JP2009134716A (en) * 2007-11-28 2009-06-18 Internatl Business Mach Corp <Ibm> Method for giving sharing cache line in multiprocessor data processing system, computer readable medium and multiprocessor data processing system
JP2009140153A (en) * 2007-12-05 2009-06-25 Fujitsu Ltd Storage management device, storage system control device, storage management program, and storage system
JP4480756B2 (en) * 2007-12-05 2010-06-16 富士通株式会社 Storage management device, storage system control device, storage management program, data storage system, and data storage method
US8234467B2 (en) 2007-12-05 2012-07-31 Fujitsu Limited Storage management device, storage system control device, storage medium storing storage management program, and storage system
WO2010070727A1 (en) * 2008-12-16 2010-06-24 富士通株式会社 Virtual tape device, and program and method for copying virtual tape data
JP2011164919A (en) * 2010-02-09 2011-08-25 Ntt Comware Corp Cache system and cache access method
JP2012168722A (en) * 2011-02-14 2012-09-06 Toshiba Corp Arbitration device, storage device, information processor and program
EP2921965A1 (en) 2014-03-19 2015-09-23 Fujitsu Limited Information processing device and shared memory management method
US10198365B2 (en) 2015-01-20 2019-02-05 Fujitsu Limited Information processing system, method and medium

Also Published As

Publication number Publication date
JPWO2003090089A1 (en) 2005-08-25

Similar Documents

Publication Publication Date Title
US7114033B2 (en) Handling data writes copied from a remote data storage device
US9753663B1 (en) Triangular asynchronous replication
US7353306B2 (en) Storage controller redundancy using bi-directional reflective memory channel
US8924665B2 (en) Virtual ordered writes transfer log
US7197616B2 (en) Virtual ordered writes
US7343514B2 (en) Data copying system, relaying device, data transfer/reception system and program for copying of data in storage unit
US7228456B2 (en) Data recovery for virtual ordered writes for multiple storage devices
US7624229B1 (en) Spillover slot
KR101200453B1 (en) A system, a method and a device for updating a data set through a communication network
US20060069890A1 (en) Triangular asynchronous replication with minimal synchronous storage
US8145865B1 (en) Virtual ordered writes spillover mechanism
US8200921B2 (en) Data synchronization for two data mirrors with sidefiles
JP2002149499A (en) Remote copy system with integrity of data
US20020129029A1 (en) Scalable transport layer protocol for multiprocessor interconnection networks that tolerates interconnection component failure
WO2003090089A1 (en) Cache device
JP2003288284A (en) Method for dynamically retransmitting transaction in multi processor computer architecture
US8707003B1 (en) Rate control for asynchronous data replication
US5913042A (en) Method and apparatus for managing packet memory
WO2003088594A1 (en) A method for providing redundancy for channel adapter failure
US7730237B1 (en) Flow control mechanism
JP2002032269A (en) Communication error restoring method and its device
GB2434894A (en) Restoring backed up data to a host system from local and remote data storage units
JP2004274376A (en) Information processing apparatus and retransmission controlling method

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): JP US

WWE Wipo information: entry into national phase

Ref document number: 2003586765

Country of ref document: JP