A method of distributed file recovery and a system using the method

Abstract: According to the present invention, a file recovery system is provided in which the commands for recovering files such as a historical file are unnecessitated and the recovery system configuration is independent of the host processing system. That is, since the equipment (12) for achieving a file recovery does not have an information about the location of the recovery data, an information about the content of a file to be recovered is transmitted to a transmission line (1). The other equipments (12) asynchronously receive the information and judges whether or not a file containing the same file exists in the own system. If the file exists, the content of the file is transmitted to the transmission line (1). The equipment (12) achieving the file recovery asynchronously receives from the transmission line (1) the file data of files such as a historical file and establishes data consistency by use of the buffered current data (504) and the event number (1004), thereby recovering files such as a historical file.

Description: BACKGROUND OF THE INVENTION The present invention relates to a file recovery for a recovery of files such as a historical file distributed to a plurality of equipments connected to a common signal transmission line, and in particular, to a method of distributed file recovery suitable for a system in which a file may possibly be destroyed and a location of a file recovery data cannot be determined. In the conventional file system, although a plurality of files are distributed as described in a manual of a large-sized computer, the processing between files is controlled by a host computer in a concentrated fashion, and hence a command error may occur during a file recovery and the contents of a file thus recovered become different from the expected correct data; moreover, during the file recovery, the processing other than the recovery processing is prevented from being executed, which leads to a disadvantage that the processing efficiency of the system as a whole is lowered. From DE-A-3 148 773, it is known a distributed file system as recited in the preamble of claim 1 and 4, respectively. However, this document discloses a method of retrieving/editing in a distributed file system, and nothing is described about a file recovery. In "ACM Transactions on Database Systems", Vol. 2, No. 1, March 1977, Pages 91-104; R.A. Lorie: "Physical Integrity in a Large Segmented Database", a recovery system is known in which a dual file system is used. That is, data are saved in a master or main file and additionally in a slave or auxiliary file, and when the master file fails, the data for the master file is recovered from the slave file. SUMMARY OF THE INVENTION It is therefore an object of the present invention to provide a method of distributed file recovery which is capable of effecting a file recovery even if the location of the file recovery data of a historical file or the like is not known and which is capable of simultaneously accomplishing operations of other equipments while executing the historical file recovery. To this end, according to the present invention, there is provided a method of distributed file recovery as described in claim 1, and a distributed file recovery apparatus as described in claim 4. BRIEF DESCRIPTION OF THE DRAWINGS The present invention will be apparent from the following detailed description taken in conjunction with the accompanying drawings, in which: FIG. 1 is a schematic diagram illustrating an example of the overall configuration of a system having a loop transmission system and n equipments connected thereto; FIG. 2 is a schematic block diagram of an equipment which may be used in the system according to the present invention; FIG. 3 is a configuration diagram illustrating the format of data on a transmission line; FIG. 4 is a configuration diagram illustrating the format of an input data to a receive buffer 206; FIG. 5 is a configuration diagram of an input processing information memory unit according to the present invention; FIG. 6 is a configuration diagram of an output processing information memory unit according to the present invention; FIG. 7 is a flowchart demonstrating an operation flow of the information memory unit control according to the present invention; FIG. 8 is a flowchart illustrating an operation flow of the file start judgment according to the present invention; FIG. 9 is a flowchart illustrating an operation flow of the mutual supporting recover according to the present invention; FIG. 10 is a schematic diagram showing the format of the historical data and the current data; FIG. 11 is a flowchart showing an operation flow of the current data buffering of the present invention; FIG. 12 is a schematic diagram illustrating the data format of the file start information according to the present invention; and FIG. 13 is a flowchart showing an operation flow of the mutual supporter according to the present invention. DESCRIPTION OF THE PREFERRED EMBODIMENTS Description will be given of an embodiment of the present invention with reference to the accompanying drawings. FIG. 1 is a schematic diagram showing the overall configuration of the present invention. A loop transmission system of FIG. 1 comprises a one directional transmission loop 1 forming a common signal transmission path or line to which n equipments 11, 12, ..., 1n are connected. FIG. 2 is a schematic diagram illustrating the configuration of an i-th equipment 1i. The equipment 1i comprises an external memory 200 and processes by use of an information processing system 204 data received via a transmission control equipment 201 and a transmission line 1, and then the data is stored in the external memory 200. Or, data stored in the external memory 200 is accessed and is processed by the information processing system 204, and thereafter the result is transmitted via the transmission control equipment 201 to the transmission line 1. Next, description will be given of the transmission control equipment 201 and the information processing system 204 in this sequence. First, the transmission control equipment 201 comprises a transmission process unit 202 and a transmission memory unit 203. FIG. 3 is a schematic diagram illustrating the format of data received by the transmission control equipment 201 via the transmission line 1. This format includes a flag 301 indicating the beginning or the end of the transmission line data, a content code 302 assigned corresponding to the content of data, an address field 303 indicating an address of an equipment that has transmitted the data, a data length field 304 containing the data length, a data field 305 containing the data, and a frame check sequence field 306 containing a frame check sequence for checking a transmission error. When the transmission process unit 202 for which a content code corresponding to the data to be received by the equipment 1i is registered to the transmission memory unit 203 receives data from the transmission line 1, the transmission process unit 202 checks the content code 302 of the transmission line data and determines whether or not the same content code has been registered in the transmission memory unit 203. If this is the case, the data is transmitted to the information processing system 204; otherwise, the received transmission line data is transferred to the linked transmission line 1. FIG. 4 is a schematic diagram illustrating the format of data passed from the transmission process unit 202 to the information processing system 204. The format comprises a content code 401, a source address of data transmission 402, a data length 403, and data 404. Next, the information processing system 204 will be described. The information processing system 204 includes a transmission buffer 205 and a receive buffer 206 for storing the transmission and received data, respectively, a processing unit 207 for temporarily processing an information, an information memory unit 208 for storing an information about the data to be processed by the processing unit 207, a timer 209, an external memory control unit 210 for controlling the data communication with respect to the external memory 200, and a buffer 218 for the current data. The processing unit 207 is further divided into processing sections including an information memory control 211, a file start judgment 212, a mutual supporting recoverer 213, a current data buffering 214, a mutual supporter 215, a file retriever 216, and a file editor 217. The mutual supporter 215, the file retriever 216, and the file editor 217 are processing sections collectively called a file module. Since each processing section operates in a data driven manner with reference to the information memory unit 208, the information memory unit 208 will be first described prior to explanation of the processing unit 207. The information memory unit 208 comprises an input processing information memory unit 501 (FIG. 5) and an output processing information unit 611 (FIG. 6). The input processing information memory unit 501 includes processing data information areas, namely, cells 511-517 corresponding to the processing sections 211-217, respectively. Each cell of the cells 511-517 further comprises an input content code area 502 for indicating a content code of an input data to the processing section, a check flag area 503 for indicating the presence/absence of the input data, an input data area 504, an output content code area 505 for indicating a content code of an output data from the processing section, and a restrain flag 506 for indicating whether or not a processing section can be started. The above-mentioned content code is a code that is assigned in accordance with the meaning of the data to be set in the field 505. The output processing information memory unit 611 includes processing data information areas, namely, cells 601-607 corresponding to the processing sections 211-217, respectively as shown in FIG. 6. Each cell of the cells 601-607 comprises an output content code area 608 for indicating a content code of an output data, a data length area 609, and an output data area 610. As for the operation of the processing unit 207, the processing sections thereof may be activated in an arbitrary order; however, in this description, the processing sections are assumed to be activated in the order of the information memory unit control 211, the file start judgment 212, the mutual supporting recoverer 213, the current data buffering 214, the mutual supporter 215, the file retriever 216, and the file editor 217. First, when the information memory unit control 211 is operated (the flowchart shown in Fig. 7), it is checked whether or not the receive buffer 206 contains data. If there exists the data, a data item having the format of FIG. 4 is set in the information memory unit 208. More concretely, the content code registered in the input content code area 502 is checked against the content code of the data in the receive buffer 206. For any data for which the content code matches, the data items (the transmission source address 402, the data length 403, and the data 404) are set in the input data area 504 and "1" is stored in the check flag area 503. If data is missing in the receive buffer, the information memory unit control 211 does not take any action. Next, the file start judgment 212 starts its operation (flowchart shown in Fig. 8). The file start information contains as the data thereof a content code corresponding to the data stored as a file in the external memory 200. The file start information is set in the input processing information memory unit 501 during the initial processing at the startup of the equipment 1i; alternatively, based on the data received from the transmission line 1, the information memory unit control 211 sets the file start information in the input processing information memory unit 501. If the file start information is found to be missing as a result of the file start information presence/absence check, no action is taken; otherwise, the restrain flag 506 is set for "1" for the mutual supporter 215, the file retriever 216, and the file editor 217, thereby restraining the execution of these three processing sections until the file recovery is completed. The file start judgment 212 sets the data containing the file start information as its substantial data to the output processing information memory unit 611. The file start information code is set in the output content code area 608. The processing of the file start judgment 212 has been described. Next, the mutual supporting recoverer 213 is activated (the flowchart shown in Fig. 9). In the input content code area 502 of the cell 512 in the input processing information memory unit 501 corresponding to the mutual supporting recoverer 213, the content code associated with the contents of the historical file to be recovered and the content code of the file start information are registered in advance. When the mutual supporting recoverer 213 is activated, the check flag area 503 is judged to determine whether or not all data registered in the cell 512 are present. If all data are present, the latest historical file data is edited by the use of the historical file data stored in the data area 504 of the cell 512 and the current data in the current data buffer 218, and then the resultant data is stored in the external memory 200 via the external memory control unit 210. The current data buffer 218 is then cleared and the restrain flag 506 is released for the mutual supporter 215, file retriever 216, and the file editor 217 to be described later, thereby completing the processing of the mutual supporting recoverer 213. Moreover, the historical data is edited as follows. First, the buffered current data is checked against the historical data to determine the new and old data. As shown in FIG. 10, the format of the current data and the historical data includes a content code field 1001, a data length field 1002, and a data field 1003. The data field 1003 is further constituted from an event number field 1004 and a data field 1005. The event number includes a data transmission source address 1006 and a sequence number assigned by the data transmission source. The event number added to the historical data is made to be identical with the event number of the latest current data used to generate the historical data; consequently, by comparing the event numbers, the historical data can be determined whether or not to be older than the buffered current data. As a result, the current data generated after the historical data generation can be identified, and hence by editing the historical data by sequentially using these current data, latest historical file data can be edited. If all data registered to the cell 512 are not present when the mutual supporting recoverer 213 is activated, a timer judgment is executed. That is, in a case of a timeout, it is assumed that the file recovery data is missing in the system and the restrain flag 506 is released for the mutual supporter 215, the file retriever 216, and the file editor 217, thereby completing the mutual supporting recoverer processing. If the timeout has not occurred, no special processing is accomplished, thereby completing the mutual supporting recovery processing. Next, the current data buffering 214 is activated (the flowchart shown in Fig. 11). To the input content code area 502 of the cell 513 in the input processing information memory unit 501 corresponding to the current data buffering 214, the content code of the current data used to edit the file is registered in advance. When the current data buffering 214 is activated, the check flag 503 of the pertinent cell 513 is checked to determine whether or not the current data has been set. If the current data has been set with the check flag = "1", the current data stored in the data area 504 of the cell 513 is buffered into the current data buffer 218. The check flag area 503 of the cell 512 is then cleared to "⊘", thereby completing the buffering processing. If the current data has not been set, no special processing is executed, thereby completing the buffering processing. Next, the mutual supporter 215 is activated (the flowchart shown in Fig. 13). The mutual supporter 215 is activated when the file start information of FIG. 12 is present. That is, if the content code 1201 of the file start information has been registered to the input content code area 502 of the own cell 514 and the check flag 503 of the area corresponding to the file start information is "1", the data corresponding to the data division 1204 of the file start information is fetched from the input data area 504 for the processing. In the concrete processing, based on the data associated with the data 1203 of the file start information, the content code of the file to be recovered is checked to determine whether or not to match with the content code of the file in the own equipment. The content code of the file in the own equipment is beforehand registered to the output content code area 505 of the cell 514 in the input processing information memory unit 501. If the content codes match as a result of the check, the content of the file is read via the external memory control unit 210 and is set to the output data area 610 of the cell 604 in the output processing information memory unit 611, the output content code is set to the content code area 608, and the check flag 503 of the own cell 514 in the input processing information memory unit is cleared to "⊘", thereby completing the mutual supporting processing. If the content codes do not match as a result of the code check, the check flag 503 of the own cell 514 in the input processing information memory unit 501 is cleared to "⊘", thereby completing the processing of the mutual supporting recoverer 213. Next, the file retriever 216 and the file editor 217 are activated in this order. The file retriever 216 and the file editor 217 are executed if the areas registered to the check flag areas 503 of the pertinent cells 515-516 in the input processing information memory unit 501 have been set to "1". More concretely, the file retriever 216 activates the external memory control unit 210, reads the content of the file, writes the obtained data in the output data area 610 of the cell 605 in the output processing information memory unit 611, and clears the check flag 503 of the cell 515 to "⊘". The file editor 217 fetches data from the input data area 504 of the cell 516, performs editing of the data, writes the resultant data in the external memory 200, and clears the check flag 503 of the cell 516 to "⊘", thereby completing the editing processing. However, if the restrain flag 506 of the cell 516 is "1", the write operation on the external memory 200 is not achieved. In the file retriever 216 and the file editor 217, if the areas registered to the check flag 503 are other than "1", no special processing is accomplished, thereby completing the file retriever and file editor processing. Next, the information memory unit control 211 is activated so as to repeat the processing described above. As described above, by periodically activating the information memory unit control 211, the file start judgment 212, the mutual supporting recoverer 213, the current data buffering 214, the mutual supporter 215, the file retriever 216, and the file editor 217, each equipment can autonomously effect the recovery without necessitating the information about the location where the data for the historical file recovery exists in the system; moreover, the file editing can be achieved even during the historical file recovery. Although the present invention has been described with reference to an embodiment of the historical file recovery method, it is not restricted by the embodiment, namely, the present invention is applicable to a case in general where the file configuration is determined according to the same idea and the data is edited according to the file configuration. Although the embodiment includes a loop configuration as a common signal transmission line, the present invention can be widely applied to any common transmission lines of the bus type, star type, and network type; moreover, lines or paths of the radio transmission and the common transmission type (for the wire and radio transmission). According to the present invention, for a file recovery of a historical file or the like, the location of the recovery data need not be known, and hence even if there exists an equipment which is executing a file recovery in the system, the other equipments need not change the operation mode, which facilitates the control. In an equipment which is executing a file recovery, the file editing can also be achieved with the current data concurrently with the file recovery, which leads to an effect that the file recovery is effected at a high speed.

Claims: A method for distributed file recovery in a distributed file system including a plurality of equipments (11, 12, ... 1n) connected to a transmission path (1), comprising the steps of: sending a message to said transmission path (1) from a first equipment; judging, in an equipment other than said first equipment, whether said message is related to a content of a file stored in said equipment other than said first equipment; and receiving, in at least one second equipment other than said first equipment, said message when said message is related to a content of a file stored in said at least one second equipment as a result of said judging step; characterized by said message being a message for a to-be-recovered file and said file stored in said at least one second equipment being a file corresponding to said to-be-recovered file; a step of sending, from said at least one second equipment, said file corresponding to said to-be-recovered file; a step of receiving, in said first equipment, said file corresponding to said to-be-recovered file from said at least one second equipment; a step of receiving, in said first equipment, current data related to said to-be-recovered file from another equipment; and a step of generating recovery data in said first equipment by use of data of said file corresponding to said to-be-recovered file received from the transmission path and said current data. A method according to claim 1, characterized by a step of comparing said data for said to-be-recovered file and said current data both received in said first equipment to determine which of them is more updated so that said generation of said recovery data on the basis of said data for said to-be-recovered file and said current data is effected when the latter is more updated than the former. A method according to claim 1, characterized in that any one of said equipments, where file recovery is intended, sends a file recovery message containing information on said to-be-recovered file to said transmission path; and that at least one of said equipments except said file recovery intending equipment receives said file recovery message from said transmission path, judges whether data identical with said data for said to-be-recovered file is included within a file stored in said at least one equipment on the basis of said file recovery message, and sends said identical data to said transmission path if said identical data is included in said file of said at least one equipment. A distributed file recovery apparatus in a distributed file system including a plurality of equipments (11, 12, ... 1n) connected to a transmission path (1), the apparatus comprising said plurality of equipments, wherein each of said equipments includes: means (202) for sending data to said transmission path (1); means (202) for judging whether said data is related to a content of a file stored in the equipment; and means (211) for receiving said data when said data is related to a content of a file stored in the equipment; characterized by said data being data for a to-be-recovered file, and the file stored in the equipment and related to said data being a file corresponding to said to-be-recovered file; means (215) for sending said file corresponding to said to-be-recovered file responding to said data; means (213) for receiving said file corresponding to said to-be-recovered file from another equipment; means (214) for receiving current data related to said to-be-recovered file from another equipment; and means (213) for generating recovery data by use of data of said file corresponding to said to-be-recovered file received from the transmission path and said current data. An apparatus according to claim 4, characterized by means (213) for comparing said data for said to-be-recovered file and said current data both received in said equipment to determine which of them is more updated so that said generation of said recovery data on the basis of said data for said to-be-recovered file and said current data is effected when the latter is more updated than the former. An apparatus according to claim 4, characterized in that each equipment further includes means for sending a file recovery message containing information on said to-be-recovered file to said transmission path; means for receiving said file recovery message from said transmission path; means for judging whether data identical with said data for said to-be-recovered file is included within a file stored in said equipment on the basis of said file recovery message; and means for sending said identical data to said transmission path if said identical data is included in said file of said equipment.

Inventors: KASASHIMA HIROKAZU, KAWAKAMI SETSUO, KAWANO KATSUMI, KOIZUMI MINORU, MORI KINJI, NAKAI KOZO, ORIMO MASAYUKI, SUZUKI YASUO, KASASHIMA, HIROKAZU, KAWAKAMI, SETSUO, KAWANO, KATSUMI, KOIZUMI, MINORU, MORI, KINJI, NAKAI, KOZO, ORIMO, MASAYUKI, SUZUKI, YASUO
Applicants: HITACHI LTD, HITACHI, LTD.
Application year: 1986
Main classification: G06F17
IPC codes: G06F13, G06F15, G06F17, G06F11, G06F12