|Publication number||US5452448 A|
|Application number||US 08/029,130|
|Publication date||Sep 19, 1995|
|Filing date||Mar 10, 1993|
|Priority date||Mar 16, 1992|
|Publication number||029130, 08029130, US 5452448 A, US 5452448A, US-A-5452448, US5452448 A, US5452448A|
|Inventors||Taketoshi Sakuraba, Junji Fukuzawa, Takaki Kuroda|
|Original Assignee||Hitachi, Ltd.|
|Export Citation||BiBTeX, EndNote, RefMan|
|Patent Citations (6), Referenced by (116), Classifications (20), Legal Events (7)|
|External Links: USPTO, USPTO Assignment, Espacenet|
1. Field of the Invention
The present invention relates to a replicate file updating method and system appropriate for effective use of a replicate file in a distributed data processing system.
2. Description of the Prior Art
(1) Snoop cache
A snoop cache, for example, is described in an article entitled "Parallel Processing Mechanism" in the Volume of Electronics, Information and Communication, MAT, Maruzen Inc., pp. 167-207, 1989.
In a microprocessor system of which each processor has a respective cache memory and is made to access to a common main memory, data existing at the same addresses in the main memory are copied into the cache memory of each cache memory before access.
In the system, if any of the processors updates the main memory, the other processors may have the data at the updated address in the cache memory. Then, coherency must be maintained among the caches in a way such as invalidating the data. The snoop cache is a cache control feature for the purpose, or a cache memory making use of the control feature.
In the multiprocessor system having the processor connected through a bus, the snoop cache functions as follows. If any of the processors updates the main memory, the cache control circuit of each processor monitors the bus to know of the updated address. If the cache memory has the corresponding data, it invalidates them to maintain the coherency. In the snoop cache, monitoring of each processor is to write in the memories of the other processors having the feature equivalent to it.
The article mentioned above explains about a cache update protocol of write broadcast type on pages 196 and 197. With the protocol, if any of the other processors has data in its own cache to update the memory, the cache is not invalidated, but the data are immediately written in the corresponding cache.
A system having the snoop cache used features a high bus reliability. It also features that memory update by any processor can be dependably transferred to the other processors. Maintenance of the coherency in each snoop cache, thus, can be readily started.
(2) Distributed file system
The distributed file system has a plurality of data processing systems, such as personal computers or workstations, connected to a communication network called a LAN (local area network). Any of the data processing systems can perform its work while receiving information from or sending to another system through the communication network. There is an important technique in the distributed data processing system which is a distributed file system. The distributed file system makes it possible to access from any of the data processing systems in the communication network to any of the files existing in another data processing system. It also makes it possible for a plurality of data processing systems to use the files existing in one data processing system in common. The data processing system having the files used in common is referred to as the file server here. The data processing system which can access to the common file in the file server is referred to as a client.
If a specific common file is frequently accessed, many access requests are concentrated in the file server. The concentration may become a bottle neck in the whole characteristic performance of the distributed data processing system. In order to solve the problem of bottle neck, a copy of the file is placed in a second file server so that the second file server can process parts of the access requests to the file to distribute the load in the two file servers. With the copy of the same file put in a plurality of data processing systems, the copy can be alternatively used even if the original file is destructed. The access to the file, thus, cannot be interrupted or can be easily restored, thereby increasing the reliability of the whole distributed data processing system. Each copy of the same file is called the replica of the file, or the replicate file. Preparing the copy is called replication.
The distributed file system is described in the ACM, Computing Surveys, vol. 22, No. 4 (1990), pp. 321-374. The replication is explained on pages 339 and 340 in the article.
As described in the article mentioned above, the replication involves a problem of update method of a plurality of replicas. A prior update method of similarly updating all the replicas at the time of update can maintain equality of the replicas. This, however, causes too high overhead. Another prior method of not maintaining the equality of the replicas at all is good in view of availability and performance. This, however, cannot maintain correctness of the process results as the equality is broken.
Still another prior typical method is as follows. There are provided a single read/write replica and a plurality of read-only replica. Update contents for the read/write replica are transferred to the data processing system having the read-only replica afterwards to refresh the read-only replica. The latest status of the read/write replica, that is, is reflected to the read-only replica while the atomicity is being maintained. This method temporarily breaks the equality of the replicas. It, however, can restore the equality in a certain time so that consistency of the data of the file can be maintained. The method, thus, is available, particularly for the read-only file or the file which is very rarely updated.
The file server having the read/write replica is hereinafter referred to as the file server (of the file) for simplicity of description. The file server having the read-only replica is hereinafter referred to as the replica server (of the file) for simplicity of description. The terms "file server" and "replica server" have their concepts given with specific files determined. A data processing system which is a file server for the specific file can be a replica server for another file.
A file in which writing is frequently made increases refreshment of the read-only replica. Update data transfer due to the refreshment is increased. As a result, the file server having the read/write replica causes overhead of the updated file or update data sending process. It also causes a new load on the communication line. The busy rate rises. If there are a plurality of replicas provided for one file, the overhead is increased by a number of the replicas as compared with that of no replica.
The overhead of the file server can be relaxed by using a plurality of file servers to distribute the load. It however is not easy to relax the load on the communication line as this is only one resource for the distributed data processing system. Scalability is one of measures of evaluating the distributed data processing system. The communication line is one of the bottle necks for the scalability. That is, there exists tradeoffs in the availability of the file by replication and between the reliability increase and system scalability. It is a problem to solve them.
In view of the foregoing, it is an object of the present invention to provide an efficient and reliable replicate file updating method and system with less overhead in updating a replica in a file server and without generation of load on a communication line.
Accordingly, the present invention provides a replicate file updating method and system in a distributed data processing system including a communication network and at least three kinds of processing systems connected with the communication network, at least one third kind of processing system being capable of access to replicate files of the first and second kind of processing systems.
The second kind of processing system is characterized in monitoring an access made by the third kind of processing system to the second kind of processing system itself through the communication network and for monitoring a communication made on the communication network between the third processing system and the first kind of processing system for updating the replicate file in the first kind of processing system, in detecting the access before detecting whether or not the second kind of processing system has the same replicate file as the file to be updated, in making the second kind of processing system take update contents thereinto sent from the third kind of processing system to the first kind of processing system if the second kind of processing system has the same replicate file, as a result of the detection, and in updating the replicate file by the the second kind of processing system according to the update contents taken in.
The present invention will be further explained in detail below in connection with its embodiments. Communication between the file server and the client accompanying update of the read/write replica is monitored by a replica server which is the data processing system having read-only replica. If it sees the writing, the replica server takes in the writing contents before refreshing the read-only replica.
Also, the replica server judges validity of update contents using a number of times of update of the file to be updated or validation data when the read-only replica of the replica server is updated. The judge is made by confirming through communication with the file server that the number of times of update of the file to be updated or the validation data obtained by the replica server is equal to the number of times of update of the file to be updated or the validation data obtained by the file server.
If it confirms the validity, the replica server refreshes the read-only replica, or performs update. If it detects an error, the replica server makes the file server send the replica of the latest status again. Using this, the replica server updates the read-only replica.
As a result, the present invention provides the following features and operations.
The replica server takes in update information received or sent at the time of the update process of the read/write replica in the file server as the update data to refresh the read-only replica. Using the update information, the replica server updates the read-only replica. For the reason, the file server is not needed to re-send the update information to refresh the read-only replica. This means that the load on the communication network can be minimized.
Also, the replica server can receive from or send to the file server the number of times of update of the file to be updated or the validation data which represents the update information needed to refresh the read-only replica well with far shorter data than the whole update information. The replica server checks equality of the numbers of times of update or the validation data obtained by the two servers to confirm validity of the data. This can overcome possible data error caused in the communication network and the like.
If it confirms the validity, the replica server executes refreshing the read-only replica without re-sending the update information as in the above. The data used in the confirmation do not cause any problem in increasing the load on the communication network as they are very small. As a result of the validity confirmation, an error of the latest data may be found. Then, the replica server has all the contents of the read/write replica or the update information needed for refreshment sent from the file server before executing refreshment of the read-only replica. This method cannot relax the loads on the file server and the communication network. However, the method provides a sufficiently high load reduction effect as an error occurrence rate is very low. It also provides the reliability equivalent to the one of the system to which the present invention is applied.
The foregoing and other objects, advantages, manner of operation and novel features of the present invention will be understood from the following detailed description when read in connection with the accompanying drawings.
In the accompanying drawings:
FIG. 1 is a block diagram for a distributed data processing system used in a first embodiment according to the present invention;
FIG. 2 is a block diagram for a second embodiment of the replica server shown in FIG. 1;
FIG. 3 is a flow chart for a data take-in process of the replica server in the first embodiment;
FIG. 4 shows an example of structure of communication data used in a replica take-in process memory in the first embodiment;
FIG. 5 shows a structure of validation data in the first embodiment;
FIG. 6 shows a file and a replica management data in the first embodiment; and
FIG. 7 is a flow chart for a replica refreshing process in the first embodiment.
The following describes in detail embodiments according to the present invention by reference to the accompanying drawings.
FIG. 1 is a block diagram for a distributed data processing system of a first embodiment of the present invention. That distributed data processing system comprises independent data processing systems, including a file server 100, a replica server 120, a client 140, and another client 160. The file server 100 has a read/write replicate file (replica). The replica server 120 has a read-only replicate file. The first client 140 is accessible to the replicate file held in the file server or replica server. These data processing systems are connected to a common LAN 180 through their respective interface boards 105, 125, 145, and 165. The systems can communicate and transfer data between themselves.
As a typical construction, the distributed data processing system uses high-performance workstations (WSes) for the file server 100 and the replica server 120, standard-performance, low-cost WSes or personal computers (PCs) for the client 140 and the client 160, and a local area network (LAN).
The file server 100 and replica server 120 have a disk storage 110 and a disk storage 130 for storage of files, respectively. The files can be accessed in common from the clients 140 and 160.
In consideration of a specific fixed file, a read/write (R/W) replica 115 of the file is stored in the disk storage 110 of the file server 100. A read-only (R/O) replica 135 of the file is stored in the disk storage 130 of the replica server 120. In order to distribute file transfer process overhead to the file server 100 and the replica server 120, the client 140 can read the file onto the read/write replica 135 of the file server 100, and the client 160 can read the same file onto the read-only replica 135 of the replica server 120.
The client 140 can request the read/write replica 115 to update as the read/write replica 115 is enabled to read/write the replica. Updated data 101, or new data updated of the file, is transferred from the client 140 through a virtual communication line 190 formed of a communication lines 145, 180, and 105. Following to the update request, the file server 100 updates the read/write replica 115 of the file. At this time, there occurs an inequality of data between the read/write replica 115 and the interface board 125. The data must be made equal in some method at a proper instance in future.
Communication through the LAN is made according to a protocol which is a communication agreement between any of the sending and receiving data processing systems. The protocol includes an addressing method which is a method for designating the receiving data processing system. The data transfer itself is made by generation or detection of an electric signal on the communication line 190, while the communication is made by the data processing system which reads address data contained in the electric signal detected by the data processing system before judging whether or not the communication is given to itself.
In this first embodiment, the interface board 125 of the replica server 120 makes it possible not only to do the communication itself to the replica server 120, but also to take the communication to the file server 100 therein to know of the update of the read/write replica and its data. This can be made as the electric signal on the LAN 180 is detected at the interface board 125 as well as at the interface board 105. In other words, a communication line 191 makes it possible to monitor transmission of the updated data to the file server 100 as the communication line 191 exists actually from the client 140 to the replica server 120. Updated data 121 is used to refresh the read-only replica 135.
The distributed data processing system may encrypt data of the communication for its security. The file server 100 can communicate update data 101 as it knows of a decryption key 102 in advance. However, even if the replica server 120 takes data therein, the replica server 120 cannot correctly use the data as the updated data as they were. The file server 100 therefore has had to send the decryption key 102 to the replica server 120 in advance. The replica server 120 keeps the decryption key 102 therein as a decryption key 122 for itself. The replica server 120 can use decryption key 122 to decrypt the update data 121 to update the replica correctly.
FIG. 2 is a block diagram for another distributed data processing system of a second embodiment of the present invention. This second embodiment has an interface board 230 for taking a communication of the file server 100 into the replica server 120 in addition to an original interface board 210 for accepting another communication to the replica server 120. This makes it possible to monitor the communication more reliably.
The interface board 210 which is an interface with the LAN 180 processes a destination address of the communication and electric connections of the connection as well. In other words, if the destination address is its own address, the interface board 210 takes communication data therein, and makes an interruption 280 to a processor 260 of the replica server 120 to make the replica server 120 to process the communication data. If updating is made by the file server 100 while the communication data are being processed, the processor 260 of the replica server 120 may fail to take the updated data.
In order to monitor the communication of the file server 100, there is provided the interface board 230 for monitoring the communication of the file server 100 only in addition to the interface board 210 specific to the replica server 120. In order to process the data taken by the interface board 230 reliably, there is further provided a processor 250 for the data processing only. For processing the monitoring data, these should be arranged so as to always interrupt processor 250. This accomplishes more dependable characteristic performance. If the client 140 starts communication with the file server 100, a communication line 291 is virtually formed of the communication lines 145 and 180 and a communication line 230. The communication line 291 corresponds to the communication line 191 shown in FIG. 1.
Relationship between the processor 250 and processor 260 is as follows.
The processor 250 monitors updating of a file by the read/write replica 115 in the file server 100. While the processor 250 is taking update data of the file, the processor 260 can continue execution of ordinary processes including services with use of the replica.
In a version-up process of the read-only replica 135, it may occur that a replacing process of the old replica with the new one may be executed in parallel with the update process of the file in the file server 100, although that parallel execution depends on a control method of the distributed file system. The update has to be reflected to a version following the new replica being created in the replica server 120. Taking the update data must be successively made.
For the replica server 120 having the plurality of processors including the update data take-only processor 250, the version-up process of the replica is made in a way that the ordinary processing processor 260 creates the new replica, while the processor 250 continues to monitor the update of the replica. At a stage that the version-up process is started, therefore, the processor 250 for a preceding update data buffer has to be replaced by the processor 260 at the same time the update data buffer is replaced. This needs that the both processors have to be synchronized.
In turn, the following describes how the replica server 120 processes the file communication data. The interface boards 210 and 230 of the replica server 120 takes the communication data therein when the LAN 180 starts the communication. At the same time, the interface boards interrupts the processors of the replica server 120 to request to process. FIG. 3 is a flow chart for the interrupt process. An interrupt handler 300 in the figure proceeds as follows. Step 310 checks the data contents taken as described above or the interrupt information. Step 310 also judges whether or not the data are related to the file in the read-only replica of the replica server and judges whether or not the data are related to the communication with either file server having the read-only replica. If the communication is with the corresponding file server, control goes to step 320. Step 320 checks whether the communication data are related to file updating or not. If so, control goes to step 330.
Step 330 checks whether or not the file to be updated is the file that the replica server has the read-only replica. If so, control goes to step 350.
Step 350 takes in and stores the data mentioned above as the update data. Step 360, further, creates or updates the replica and the replica update data management information. These replica and the replica update data management information are used to refresh the read-only replica afterwards.
In turn, the following describes about the data for use in the judgement processes at steps 310, 320, and 330. FIG. 4 shows an example of structure of communication data taken in memory at the time of interruption. The data are of nesting structure corresponding to a process level at which they are looked up. A data structure field 400 is a structure when the data are transmitted on the LAN 180. The data structure field 400 contain a source address field 401, a destination address field 402, a data type field 403, a data body field 404, and redundant data field 405 for error detection.
Step 310 can look up the destination address field 402 to judge whether or not the communication data are communicated to the file server related to themselves.
The data body field 404 of the data structure field 400 contains a data sub-structure field 420 for use in a higher level process. The data sub-structure field 420 contains a source ID field 421, a destination ID field 422, a control information field 423, and data field 424 to be transferred to the higher level process. The destination ID field 422 represents a feature to receive the communication or a program. The ID field 422 makes it possible to find that the communication is to the file server 100. This is because the replica server 120 knows what a destination ID a control program of the file server 100 should have.
The data field 424 is of a data structure field 440. A service ID field 441 has contents of a service request shown for the control program of the file server 100. Being looked up, the ID field 441 makes it possible to find whether the file should be updated or not. Step 320, therefore, looks up the fields 422 and 441 to judge that the file is requested to update.
For the file update request, the data structure field 440 has fields, including a file ID field 442 of the file to be updated, a relative address field 443, an update length field 444 indicating an update range, and an update data field 445 having the contents themselves to be updated. The replica server 120 has a management table for the replica stored therein. Step 330, thus, can judge whether or not the replica server 120 has the replica of the file indicated by the file ID field 442. The fields 443, 444, and 445 indicating the update contents are used by step 350. Parts of the update contents are stored in the disk.
In turn, the following describes as to validity of the update data. The update data of the replica are independently taken in by the replica server 120 and the file server 100 for use to update. In particular, the file server 100 uses a proper protocol with the client 140 having requested the update for reliable data transfer. The replica server 120, on the other hand, has not always a maintenance of validity of the updated data taken in, as the replica server 120 monitors the communication only. If the data can be taken in, validity of the data can be maintained to a certain degree.
However, if the replica server 120 is overloaded, for example, this may cause a monitoring omission in the communication of the file server 100. The updated data may be partly lost. It, therefore, is desirable to use some method that the file server 100 can be participated in the validity check of the updated data taken in by the replica server 120.
An example of the method is as follows. Suppose the redundant data 405 for error detection of the taken-in data be effective. In addition to checking the data every time of update, it should be confirmed that the file server 100 and replica server 120 are equal in numbers of times of the updates. We, then, can determine that the validity of the updated data taken in by the replica server 120 is maintained.
As an example, let us consider a number of updates (a first update, a second update, a third update, and so on) of a file A stored in the file server 100 and the replica server 120 after at an instance. Each of the updates may be for the whole file A. Otherwise, partial updates may be done in a way that the first update should be for 20 bytes, a former part of the file A; the second update should be for 30 bytes, a latter part of the file A; and the third update should be for 40 bytes, a central part of the file A.
Besides, we may feel an anxiety that the validity of the redundant data for error detection may not be sufficient. We also may feel another anxiety that only the equality of the number of times may not be sufficient to prove valid. We, then, have to make both the file server 100 and replica server 120 create validation data depending on the updated data before confirming the equality of the both data. The communication for the validation has to be far smaller than the updated data. This is a condition for an object of the present invention that is to reduce the load on the communication network (LAN).
The both redundant data for error detection of the current updated data are sent as the validation data before being compared with. This can detect inequality. If unequal, the replica server 120 should have only the updated data sent at the time the redundant data for error detection are unequal. This can make the amount of data to transfer less than all the updated data to send.
FIG. 5 shows a structure of the validation data.
The validation data 500 comprise redundant data fields 510, 520, and so on for error detection in correspondence with the updated data. The redundant data fields are from the first to latest update as counted after the preceding version-up. As an example, the equality of the replica can be maintained by transferring to the replica server 120 the updated data only at the time of the second update.
Another validation method is as follows. Both the file server 100 and the replica server 120 should be made to generate the redundant data for error detection as to update contents after an nth update. The file server 100 should transfer only the redundant data for error detection as validation data. Equality of the redundant data for error detection, then, should be confirmed. This method makes the file server 100 send to the replica server 120 the updated data until the nth time even if an error occurs in the course or even if parts of the updated data are missed. This overwrites the data. If the contents are finally equal, the file is so useful as replica to effectively reduce the loss due to an error, particularly in no need of the condition that the number of times of updating must be used as data for validation of the updated data.
In turn, the following describes as to a replica management table for use in the file server. FIG. 6 shows a file management entry (FME) field 600 and a replica management entry (RME) field 620 for management of its replica. They are all of chain structure as there exist pluralities of files and replicas to be managed. The FME field 600 includes a file ID field 601 of the file that the entry manages and an RME pointer field 603 for the RME field 620 of the replica of the file. The RME field 620 includes a replica ID field 621, a stored server address field 623 of a data processing system having the replica, a current version field 624 indicating a current status of the replica, an update count field 625 indicating a number of times of update after replication of the version, and a validation data field 626 featuring a course of update.
In turn, the following describes as to a process for refresh the read-only replica in the replica server 120. FIG. 7 is a flow chart for a process 700 of the file server 100 in an embodiment of the process for refreshing the read-only replica in the replica server 120 and for a replica refreshing process 750 in the replica server 120. In the figure are shown keyed arrows 711, 731, 771, and 772 which indicate communications between the both servers. In the figure are also shown a data field 720 sent through the communication 711. In this embodiment, suppose the refreshing process of the read-only replica be started by the file server 100.
First, the file server 100 issues a refresh request to the replica server 120 through the communication 711 at step 710. The communication 711 sends the data field 720, including a file ID field 721 of the replica to be refreshed, an update count field 722 of the read/write replica of the file after the preceding refreshment and if necessary, a validation data field 723 for the updated data. The update count field 722 and the validation data field 723 use the update count field 625 and the validation data field 626 of the replica management entry (REM) field 620 in the file server 100.
The communication 711 starts the replica refreshing process 750 in the replica server 120. The replica server 120 compares the update count field 722 and the validation data field 723 sent at step 755 with the update count made or generated in the replica server 120 and the validation data. This is to evaluate validity of the updated data in the replica server 120. If the validity is confirmed, control goes to step 760.
Step 760 refreshes the read-only replica in the replica server 120 by using the updated data taken in by the replica server 120. If the refreshing process is succeeded, step 762 sends through the communication 771 that the latest data are not needed to send from the file server 100. Step 780 updates the replica management information before ending the refreshing process. If the refreshing process fails, control goes to step 770.
If the validity of the updated data taken in by the replica server 120 at step 755 is not confirmed and if failure of the refreshing process is judged, then step returns the response 772 that requests the file server 100 to send the latest version of specified data.
The file server 100 checks the responses 771 and 772 given from the replica server 120 at step 715. If they are not the send request of the latest version, or if refreshing the replica in the replica server 120 is completed, then step 740 updates the replica management information before ending the process.
If step 715 finds that sending the latest version is requested, control goes to step 730. The latest version is sent through the communication 731. The process is returned to step 715 again. Step 715 confirms that the refreshing the replica in the replica server 120 is completed before ending the process through step 740.
The replica server 120 refreshes the replica at step 775 by using the updated data given through the latest version transfer 731. Step 775 then goes to step 761. Step 762 responds with the refreshing process end through the communication 771 before ending the process.
In turn, the following describes about differences between the present invention and the maintenance method of the cache coherence of the snoop cache.
The snoop cache uses a data update source provided in a processor. Monitoring the bus is made by the other processor having functions similar to those of the update source processor. An object to be updated is the memory which is an entity different at the level from the processor. On the other hand, the present invention uses the client as the update source. Monitoring the communication lines is made by the replica server. The object to be updated is the read/write replica provided in the file server having the functions similar to those of the replica server. That is, the two methods are basically different in the structure. One is that monitoring is made at the equivalent level as the update request source, while the other is that monitoring is at the equivalent level as the updated object.
The snoop cache underlines that in the cache update, the update data taken in as results of monitoring are immediately reflected to the cache. On the other hand, the present invention features that the update data taken in as results of monitoring are stored in the proper memory. This makes it possible that the read-only replica is refreshed even after the data have been updated a plurality of times. That is, the two methods are different to a great extent in the reflection of the data taken in.
Further, the present invention features that in refreshing the data, validity of the updated data taken in is confirmed through communication with the file server. This feature accomplishes a highly reliable replication.
A feature of the present invention is that the update contents can be taken in at the same time the read-write replica is updated. This makes it possible that in refreshing the read-only replica, it is not needed to re-send the updated contents from the file server to the replica server. Another feature of the present invention relates to refreshing the replicate file that can be made without increasing the loads on the file server and the communication network. Still another feature of the present invention relates to confirmation of the validity of the update information at the time of updating the replica through communication with the file server. This makes it possible to maintain the equality of the replicas at a high level. It, thus, accomplishes a highly reliable replication.
|Cited Patent||Filing date||Publication date||Applicant||Title|
|US4558413 *||Nov 21, 1983||Dec 10, 1985||Xerox Corporation||Software version management system|
|US4771375 *||Sep 15, 1986||Sep 13, 1988||International Business Machines Corporation||Managing data storage devices connected to a digital computer|
|US5018060 *||Jan 26, 1989||May 21, 1991||Ibm Corporation||Allocating data storage space of peripheral data storage devices using implied allocation based on user parameters|
|US5089958 *||Jan 23, 1989||Feb 18, 1992||Vortex Systems, Inc.||Fault tolerant computer backup system|
|US5138710 *||Apr 25, 1990||Aug 11, 1992||Unisys Corporation||Apparatus and method for providing recoverability in mass storage data base systems without audit trail mechanisms|
|US5267867 *||Sep 11, 1992||Dec 7, 1993||Digital Equipment Corporation||Package for multiple removable integrated circuits|
|Citing Patent||Filing date||Publication date||Applicant||Title|
|US5613079 *||Sep 5, 1995||Mar 18, 1997||Microsoft Corporation||System for verifying the proper operation of a replication facility|
|US5675723 *||May 19, 1995||Oct 7, 1997||Compaq Computer Corporation||Multi-server fault tolerance using in-band signalling|
|US5684991 *||Feb 7, 1996||Nov 4, 1997||Cheyenne Advanced Technology Ltd.||Modification metadata set, abstracted from database write requests|
|US5689706 *||Oct 10, 1996||Nov 18, 1997||Lucent Technologies Inc.||Distributed systems with replicated files|
|US5734898 *||Jun 26, 1995||Mar 31, 1998||International Business Machines Corporation||Client-server computer system and method for updating the client, server, and objects|
|US5752042 *||Jun 7, 1996||May 12, 1998||International Business Machines Corporation||Server computer for selecting program updates for a client computer based on results of recognizer program(s) furnished to the client computer|
|US5757669 *||May 31, 1995||May 26, 1998||Netscape Communications Corporation||Method and apparatus for workgroup information replication|
|US5758342 *||Jan 23, 1995||May 26, 1998||International Business Machines Corporation||Client server based multi-processor file system wherein client files written to by a client processor are invisible to the server|
|US5764903 *||Sep 26, 1994||Jun 9, 1998||Acer America Corporation||High availability network disk mirroring system|
|US5812751 *||Oct 3, 1997||Sep 22, 1998||Compaq Computer Corporation||Multi-server fault tolerance using in-band signalling|
|US5845061 *||Oct 26, 1995||Dec 1, 1998||Hitachi, Ltd.||Redundant client server system|
|US5848241 *||Jan 9, 1997||Dec 8, 1998||Openframe Corporation Ltd.||Resource sharing facility functions as a controller for secondary storage device and is accessible to all computers via inter system links|
|US5875299 *||Nov 10, 1994||Feb 23, 1999||Fujitsu Ltd.||disk access apparatus for performing a stride processing of data|
|US5950198 *||Mar 24, 1997||Sep 7, 1999||Novell, Inc.||Processes and apparatuses for generating file correspondency through replication and synchronization between target and source computers|
|US5966714 *||Apr 30, 1996||Oct 12, 1999||Intel Corporation||Method and apparatus for scaling large electronic mail databases for devices with limited storage|
|US6032271 *||Jun 5, 1996||Feb 29, 2000||Compaq Computer Corporation||Method and apparatus for identifying faulty devices in a computer system|
|US6049809 *||Oct 30, 1996||Apr 11, 2000||Microsoft Corporation||Replication optimization system and method|
|US6074434 *||Mar 7, 1997||Jun 13, 2000||International Business Machines Corporation||Selection of code updates, data updates or new data for client|
|US6152878 *||Jun 1, 1998||Nov 28, 2000||Medinol Ltd.||Intravascular ultrasound enhanced image and signal processing|
|US6178429 *||Nov 26, 1997||Jan 23, 2001||Cisco Technology, Inc.||Mechanism for ensuring SCM database consistency on multi-part operation boundaries|
|US6182077 *||Aug 10, 1999||Jan 30, 2001||Fujitsu Limited||Method and apparatus for confirming matching of data in a distributed processing system|
|US6243719||Mar 17, 1998||Jun 5, 2001||Fujitsu Limited||Data caching apparatus, data caching method and medium recorded with data caching program in client/server distributed system|
|US6247141||Sep 24, 1998||Jun 12, 2001||Telefonaktiebolaget Lm Ericsson (Publ)||Protocol for providing replicated servers in a client-server system|
|US6253209 *||Jul 7, 1998||Jun 26, 2001||International Business Machines Corporation||Method for parallel, remote administration of mirrored and alternate volume groups in a distributed data processing system|
|US6260069 *||Feb 10, 1998||Jul 10, 2001||International Business Machines Corporation||Direct data retrieval in a distributed computing system|
|US6260155||May 1, 1998||Jul 10, 2001||Quad Research||Network information server|
|US6266678 *||Dec 31, 1998||Jul 24, 2001||Computer Associates Think, Inc.||System and method for dynamically viewing contents of a data file|
|US6321236 *||Aug 3, 1999||Nov 20, 2001||Arkona, Inc.||Distributing database differences corresponding to database change events made to a database table located on a server computer|
|US6412017||Jul 1, 1996||Jun 25, 2002||Microsoft Corporation||Urgent replication facility|
|US6467049||Oct 15, 1999||Oct 15, 2002||Cisco Technology, Inc.||Method and apparatus for configuration in multi processing engine computer systems|
|US6477583 *||Nov 15, 1999||Nov 5, 2002||Novell, Inc.||Infrastructure for supporting file replications|
|US6484185 *||Apr 5, 1999||Nov 19, 2002||Microsoft Corporation||Atomic operations on data structures|
|US6529904||May 28, 1999||Mar 4, 2003||Oracle Corp.||Deployment of snapshots with parameterized data description language strings|
|US6532479 *||May 28, 1999||Mar 11, 2003||Oracle Corp.||Data replication for front office automation|
|US6697804||Nov 14, 2002||Feb 24, 2004||Oracle International Corp.||Deploying plurality of sanpshots storing parameterized data description language strings with substitutable parameter causes database object to instantiated|
|US6792540||May 28, 1999||Sep 14, 2004||Oracle International Corporation||Data replication security|
|US6799224||Mar 10, 1999||Sep 28, 2004||Quad Research||High speed fault tolerant mass storage network information server|
|US6889247 *||Jan 29, 2001||May 3, 2005||Netscape Communications Corporation||Method and apparatus for workgroup information replication|
|US6918044||Oct 15, 1999||Jul 12, 2005||Cisco Technology, Inc.||Password protection for high reliability computer systems|
|US6978280 *||Oct 12, 2000||Dec 20, 2005||Hewlett-Packard Development Company, L.P.||Method and system for improving LUN-based backup reliability|
|US7035847||Mar 15, 2002||Apr 25, 2006||Novell, Inc.||Server for synchronization of files|
|US7051053 *||Sep 30, 2002||May 23, 2006||Dinesh Sinha||Method of lazily replicating files and monitoring log in backup file system|
|US7080372||Jun 12, 2000||Jul 18, 2006||Lenovo (Singapore) Pte Ltd.||System and method for managing system configuration across a network|
|US7117249 *||Oct 25, 2000||Oct 3, 2006||Hitachi, Ltd.||Computer system and data sharing method between computers|
|US7162689||May 28, 1999||Jan 9, 2007||Oracle International Corporation||Schema evolution in replication|
|US7200847||May 23, 2002||Apr 3, 2007||Microsoft Corporation||Urgent replication facility|
|US7263476||Jun 12, 2000||Aug 28, 2007||Quad Research||High speed information processing and mass storage system and method, particularly for information and application servers|
|US7318107 *||Jun 30, 2000||Jan 8, 2008||Intel Corporation||System and method for automatic stream fail-over|
|US7370025 *||Dec 17, 2002||May 6, 2008||Symantec Operating Corporation||System and method for providing access to replicated data|
|US7376754||Feb 27, 2004||May 20, 2008||Bea Systems, Inc.||System and method for communications between servers in a cluster|
|US7430744||Apr 21, 2006||Sep 30, 2008||Microsoft Corporation||Urgent replication facility|
|US7499904 *||Nov 25, 2003||Mar 3, 2009||Microsoft Corporation||System and method for client mastered replication of local files|
|US7526533||Nov 30, 1999||Apr 28, 2009||Cisco Technology, Inc.||Active call context reconstruction for primary/backup resource manager servers|
|US7571255||Feb 6, 2008||Aug 4, 2009||Bea Systems, Inc.||System and method for communication between servers in a cluster|
|US7583591 *||Dec 8, 2002||Sep 1, 2009||Intel Corporation||Facilitating communications with clustered servers|
|US7657517||Jan 5, 2006||Feb 2, 2010||Novell, Inc.||Server for synchronization of files|
|US7702667||Sep 27, 2006||Apr 20, 2010||Netapp, Inc.||Methods and systems for validating accessibility and currency of replicated data|
|US7734826||Mar 15, 2002||Jun 8, 2010||Novell, Inc.||Client-server model for synchronization of files|
|US7814499||Dec 12, 2005||Oct 12, 2010||Microsoft Corporation||Urgent replication facility|
|US7961594||Apr 22, 2005||Jun 14, 2011||Onaro, Inc.||Methods and systems for history analysis for access paths in networks|
|US8010491||Feb 28, 2003||Aug 30, 2011||Microsoft Corporation||Method for managing multiple file states for replicated files|
|US8041735||Nov 1, 2002||Oct 18, 2011||Bluearc Uk Limited||Distributed file system and method|
|US8103625||Apr 28, 2008||Jan 24, 2012||Symantec Operating Corporation||System and method for providing access to replicated data|
|US8112510||May 22, 2009||Feb 7, 2012||Netapp, Inc.||Methods and systems for predictive change management for access paths in networks|
|US8117344||Jun 22, 2009||Feb 14, 2012||Visto Corporation||Global server for authenticating access to remote services|
|US8180897||Jul 12, 2004||May 15, 2012||Bluearc Uk Limited||Apparatus and method for hardware implementation or acceleration of operating system functions|
|US8190513||Oct 22, 2008||May 29, 2012||Fraud Control Systems.Com Corporation||Method of billing a purchase made over a computer network|
|US8224877||Aug 20, 2007||Jul 17, 2012||Bluearc Uk Limited||Apparatus and method for hardware-based file system|
|US8229844||Oct 22, 2008||Jul 24, 2012||Fraud Control Systems.Com Corporation||Method of billing a purchase made over a computer network|
|US8463936 *||May 3, 2005||Jun 11, 2013||Canon Kabushiki Kaisha||Method and device for distributing digital data in particular for a peer-to-peer network|
|US8630942||Oct 22, 2008||Jan 14, 2014||Fraud Control Systems.Com Corporation||Method of billing a purchase made over a computer network|
|US8639731||Jun 26, 2012||Jan 28, 2014||Hitachi Data Engineering UK Limited||Apparatus for managing plural versions of a root node for an object of a file system|
|US8745167||Jun 8, 2009||Jun 3, 2014||Good Technology Corporation||System and method for globally and securely accessing unified information in a computer network|
|US8775387||Feb 24, 2010||Jul 8, 2014||Netapp, Inc.||Methods and systems for validating accessibility and currency of replicated data|
|US8788530||Oct 14, 2011||Jul 22, 2014||Hitachi Data Systems Engineering UK Limited||Distributed file system and method|
|US8812702||Jun 22, 2009||Aug 19, 2014||Good Technology Corporation||System and method for globally and securely accessing unified information in a computer network|
|US8943513 *||Sep 13, 2012||Jan 27, 2015||Overland Storage, Inc.||Systems and methods for load balancing drives and servers by pushing a copy of a frequently accessed file to another disk drive|
|US8949824||Sep 28, 2012||Feb 3, 2015||Wal-Mart Stores, Inc.||Systems and methods for installing, managing, and provisioning applications|
|US9128792||Sep 28, 2012||Sep 8, 2015||Wal-Mart Stores, Inc.||Systems and methods for installing, managing, and provisioning applications|
|US9235491||Sep 28, 2012||Jan 12, 2016||Wal-Mart Stores, Inc.||Systems and methods for installing, managing, and provisioning applications|
|US9317269||Sep 28, 2012||Apr 19, 2016||Wal-Mart Stores, Inc.||Systems and methods for installing, managing, and provisioning applications|
|US9361603||Mar 2, 2011||Jun 7, 2016||Good Technology Corporation||System and method for globally and securely accessing unified information in a computer network|
|US9501322||Sep 13, 2013||Nov 22, 2016||Netapp, Inc.||Systems and methods for path-based management of virtual servers in storage network environments|
|US20020065827 *||Jan 29, 2001||May 30, 2002||David Christie||Method and apparatus for workgroup information replication|
|US20020144252 *||May 23, 2002||Oct 3, 2002||Microsoft Corporation||Urgent replication facility|
|US20020174180 *||Mar 15, 2002||Nov 21, 2002||Novell, Inc.||Client-server model for synchronization of files|
|US20020194205 *||Mar 15, 2002||Dec 19, 2002||Novell, Inc.||Server for synchronization of files|
|US20040006578 *||Nov 27, 2002||Jan 8, 2004||Trsunyeng Yu||System and method for distributed concurrent version management|
|US20040064488 *||Sep 30, 2002||Apr 1, 2004||Dinesh Sinha||Real time optimized backup of computer data|
|US20040109406 *||Dec 8, 2002||Jun 10, 2004||Rothman Michael A.||Facilitating communications with clustered servers|
|US20050021690 *||Feb 27, 2004||Jan 27, 2005||Prasad Peddada||System and method for communications between servers in a cluster|
|US20050114412 *||Nov 25, 2003||May 26, 2005||Microsoft Corporation||System and method for client mastered replication of local files|
|US20050165861 *||Mar 18, 2005||Jul 28, 2005||Netscape Communications Corporation||Method and apparatus for replicating information|
|US20050193059 *||Apr 28, 2005||Sep 1, 2005||Richard Dellacona||High speed fault tolerant mass storage network information server|
|US20050203989 *||May 9, 2005||Sep 15, 2005||Richard Dellacona||High speed information processing and mass storage system and method, particularly for information and application servers|
|US20050223146 *||Feb 4, 2005||Oct 6, 2005||Richard Dellacona||High speed information processing and mass storage system and method, particularly for information and application servers|
|US20050262233 *||Apr 22, 2005||Nov 24, 2005||Roee Alon||Methods and systems for history analysis for access paths in networks|
|US20050278389 *||May 3, 2005||Dec 15, 2005||Canon Kabushiki Kaisha||Method and device for distributing digital data in particular for a peer-to-peer network|
|US20060112150 *||Jan 5, 2006||May 25, 2006||Brown David K||Server for synchronization of files|
|US20060136484 *||Dec 12, 2005||Jun 22, 2006||Microsoft Corporation||Urgent Replication Facility|
|US20060190630 *||Feb 25, 2004||Aug 24, 2006||Sepaton Inc.||Apparatus and method to pass through data in a storage area network|
|US20070088763 *||Sep 27, 2006||Apr 19, 2007||Raphael Yahalom||Methods and systems for validating accessibility and currency of replicated data|
|US20070266074 *||Jul 19, 2007||Nov 15, 2007||Quad Research|
|US20080126546 *||Feb 6, 2008||May 29, 2008||Bea Systems, Inc.||System and method for communication between servers in a cluster|
|US20090313367 *||May 22, 2009||Dec 17, 2009||Netapp, Inc.||Methods and systems for predictive change management for access paths in networks|
|US20120102135 *||Oct 22, 2010||Apr 26, 2012||Netapp, Inc.||Seamless takeover of a stateful protocol session in a virtual machine environment|
|US20130060948 *||Sep 13, 2012||Mar 7, 2013||Overland Storage, Inc.||Systems and methods for load balancing drives and servers|
|USRE40989 *||Nov 12, 2004||Nov 17, 2009||Microsoft Corporation||Atomic operations on data structures|
|EP1139235A2 *||Mar 28, 2001||Oct 4, 2001||Fuji Photo Film Co., Ltd.||Distributed data processing system and method of processing data in distributed data processing system|
|EP1943594A2 *||Sep 27, 2006||Jul 16, 2008||Onaro||Methods and systems for validating accessibility and currency of replicated data|
|EP1943594A4 *||Sep 27, 2006||Dec 16, 2009||Onaro||Methods and systems for validating accessibility and currency of replicated data|
|WO2004077266A2 *||Feb 25, 2004||Sep 10, 2004||Sepaton, Inc.||Apparatus and method to pass through data in a storage area network|
|WO2004077266A3 *||Feb 25, 2004||Mar 30, 2006||Miklos Sandorfi||Apparatus and method to pass through data in a storage area network|
|WO2004077280A2 *||Feb 27, 2004||Sep 10, 2004||Bea Systems, Inc.||System and method for communications between servers in a cluster|
|WO2004077280A3 *||Feb 27, 2004||Jun 29, 2006||Bea Systems Inc||System and method for communications between servers in a cluster|
|WO2007038617A2||Sep 27, 2006||Apr 5, 2007||Onaro||Methods and systems for validating accessibility and currency of replicated data|
|U.S. Classification||1/1, 707/E17.01, 714/E11.125, 714/E11.107, 707/E17.007, 707/999.201|
|International Classification||G06F17/30, G06F11/20, G06F12/00, G06F11/14|
|Cooperative Classification||G06F11/2066, G06F17/30212, Y10S707/99952, G06F11/2074, G06F17/30176, G06F11/1464|
|European Classification||G06F11/14A10P4, G06F17/30F7Y1, G06F17/30F8D3, G06F11/20S2P2|
|Mar 10, 1993||AS||Assignment|
Owner name: HITACHI, LTD., JAPAN
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST.;ASSIGNORS:SAKURABA, TAKETOSHI;FUKUZAWA, JUNJI;KURODA, TAKAKI;REEL/FRAME:006474/0407;SIGNING DATES FROM 19930210 TO 19930218
|Nov 21, 1995||CC||Certificate of correction|
|Apr 13, 1999||REMI||Maintenance fee reminder mailed|
|Jun 1, 1999||SULP||Surcharge for late payment|
|Jun 1, 1999||FPAY||Fee payment|
Year of fee payment: 4
|Feb 27, 2003||FPAY||Fee payment|
Year of fee payment: 8
|Feb 23, 2007||FPAY||Fee payment|
Year of fee payment: 12