Data replication facility for distributed computing environments
First Claim
1. In a computer network having a plurality of nodes, a file replication system comprising:
- means, distributed on each of said nodes, capable of receiving an updated file in any one of said nodes;
means, distributed throughout said plurality of nodes and responsive to receiving said file in a certain one of said nodes, for replicating said updated file in all other of said nodes in a manner that is network-topology independent and avoids a single point of failure;
wherein said certain one of said nodes is the originator node and said replicating means further comprises;
means for establishing another of said nodes as master node, said plurality of nodes except for both said originator node and said master node being slave nodes;
means for storing said updated file on said master node as a backup file; and
,in each of said slave nodes, means for updating a particular file corresponding to said updated file;
means for associating a file version variable with said updated file;
said storing means comprising;
local workspace means for receiving said updated file in said master node;
means for error checking said file version variable to confirm validity of said file version variable;
global workspace means adapted to receive said updated file from said local workspace means; and
,means, responsive to operation of said error checking means confirming said validity, for transferring said updated file to said global workspace means; and
,means, responsive to operation of said transferring means, for communicating both creation of said backup file to said originator node and availability of said backup file to said slave nodes.
9 Assignments
0 Petitions
Accused Products
Abstract
A data replication facility for distributed computing environments. A computer network having a plurality of network nodes utilizes a distributed directory provider service (DPS) having an established master node. The DPS supports a file replication service (FRS). The FRS establishes one of the nodes as originator node which receives new or updated files from one or more user/GUIs and/or from one or more software providers such as a security provider. The originator node in cooperation with the master node establish a backup copy of the new or updated file in the master node. Thereafter, the originator node publishes a File Version Variable (FVV) representation of the new or updated file to other network nodes (slave nodes) which obtain such file from the originator or, if need be, from the backup master node. Object observers are utilized to determine changes to the file version variables thereby triggering the downloading of new or updated files into the network nodes, whereby data file replication is accomplished throughout the network. In addition to avoiding a single point of failure, embodiments of the present invention also are network-topology independent. Additional syncing threads are employed as part of the file replication service to further ensure synchronization of the network nodes'"'"' data files within a predetermined interval, regardless of network failure modes. Embodiments of the present invention are particularly useful with networks of the client-server storage network variety.
156 Citations
55 Claims
-
1. In a computer network having a plurality of nodes, a file replication system comprising:
-
means, distributed on each of said nodes, capable of receiving an updated file in any one of said nodes; means, distributed throughout said plurality of nodes and responsive to receiving said file in a certain one of said nodes, for replicating said updated file in all other of said nodes in a manner that is network-topology independent and avoids a single point of failure; wherein said certain one of said nodes is the originator node and said replicating means further comprises; means for establishing another of said nodes as master node, said plurality of nodes except for both said originator node and said master node being slave nodes; means for storing said updated file on said master node as a backup file; and
,in each of said slave nodes, means for updating a particular file corresponding to said updated file; means for associating a file version variable with said updated file;
said storing means comprising;local workspace means for receiving said updated file in said master node; means for error checking said file version variable to confirm validity of said file version variable; global workspace means adapted to receive said updated file from said local workspace means; and
,means, responsive to operation of said error checking means confirming said validity, for transferring said updated file to said global workspace means; and
,means, responsive to operation of said transferring means, for communicating both creation of said backup file to said originator node and availability of said backup file to said slave nodes. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. In a computer network having a plurality of nodes, a file replication system comprising:
-
means, distributed on each of said nodes, capable of receiving an updated file in any one of said nodes; means, distributed throughout said plurality of nodes and responsive to receiving said file in a certain one of said nodes, for replicating said updated file in all other of said nodes in a manner that is network-topology independent and avoids a single point of failure; wherein said certain one of said nodes is the originator node and said replicating means further comprises; means for establishing another of said nodes as master node, said plurality of nodes except for both said originator node and said master node being slave nodes; means for storing said updated file on said master node as a backup file; in each of said slave nodes, means for updating a particular file corresponding to said updated file; and means for establishing a particular file version variable corresponding to said particular file; polling means for allowing said each of said slave nodes to periodically poll said master node to determine if said particular file contents matches said updated file contents; and
,synchronizing means, responsive to operation of said polling means determining that said particular file contents do not match said updated file contents, for synchronizing said particular file contents with said updated file contents. - View Dependent Claims (15)
-
-
16. In a computer network having a plurality of nodes, a file replication system comprising:
-
means, distributed on each of said nodes, capable of receiving an updated file in any one of said nodes; means, distributed throughout said plurality of nodes and responsive to receiving said file in a certain one of said nodes, for replicating said updated file in all other of said nodes in a manner that is network-topology independent and avoids a single point of failure; wherein said certain one of said nodes is the originator node and said replicating means further comprises; means for establishing another of said nodes as master node, said plurality of nodes except for both said originator node and said master node being slave nodes; means for storing said updated file on said master node as a backup file; in each of said slave nodes, means for updating a particular file corresponding to said updated file; and means for establishing a particular file version variable corresponding to said particular file, and wherein each of said plurality of nodes is a storage system having storage media on which both said particular file version variable and said particular file contents are stored; polling means, for comparing said particular file version variable stored on said storage media in said each of said nodes with said particular file version variable stored elsewhere in its respective node to determine a particular file version variable match for said each of said nodes; and synchronizing means, responsive to operation of said polling means determining said particular file version variable match was not achieved for certain of said nodes for achieving said particular file version variable match for each of said certain nodes. - View Dependent Claims (17)
-
-
18. A computer program product for use in a computer network having a plurality of nodes, said computer program product including a tangible computer usable medium having computer readable program code thereon for file replication, said program code comprising:
-
program code, distributed on each of said nodes, capable of receiving an updated file in any one of said nodes; program code, distributed throughout said plurality of nodes and responsive to receiving said file in a certain one of said nodes, for replicating said updated file in all other of said nodes in a manner that is network-topology independent; wherein said certain one of said nodes is the originator node and said replicating program code further comprises; program code for establishing another of said nodes as master node, said plurality of nodes except for both said originator node and said master node being slave nodes; program code for storing said updated file on said master node as a backup file; and
,in each of said slave nodes, program code for updating a particular file corresponding to said updated file; program code for associating a file version variable with said updated file; said storing program code comprising; local workspace program code for receiving said updated file in said master node; program code for error checking said file version variable to confirm validity of said file version variable; global workspace program code adapted to receive said updated file from said local workspace program code; and
,program code, responsive to operation of said error checking program code confirming said validity for transferring said updated file to said global workspace program code; and
,program code, responsive to operation of said transferring program code, for communicating both creation of said backup file to said originator node and availability of said backup file to said slave nodes. - View Dependent Claims (19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31)
-
-
32. A computer program product for use in a computer network having a plurality of nodes, said computer program product including a tangible computer usable medium having computer readable program code thereon for file replication, said program code comprising:
-
program code, distributed on each of said nodes, capable of receiving an updated file in any one of said nodes; program code, distributed throughout said plurality of nodes and responsive to receiving said file in a certain one of said nodes, for replicating said updated file in all other of said nodes in a manner that is network-topology independent; wherein said certain one of said nodes is the originator node and said replicating program code further comprises; program code for establishing another of said nodes as master node, said plurality of nodes except for both said originator node and said master node being slave nodes; program code for storing said updated file on said master node as a backup file; and
,in each of said slave nodes, program code for updating a particular file corresponding to said updated file; and program code for establishing a particular file version variable corresponding to said particular file; polling program code for allowing said each of said slave nodes to periodically poll said master node to determine if said particular file contents matches said updated file contents; and
,synchronizing program code, responsive to operation of said polling program code determining that said particular file contents do not match said updated file contents, for synchronizing said particular file contents with said updated file contents. - View Dependent Claims (33)
-
-
34. In a computer network having a plurality of nodes, a file replication method executed by a computer, said method comprising:
-
arranging for receipt of an updated file in any one of said nodes; receiving said updated file in a certain one of said nodes; replicating said file in all other of said nodes in a manner that is network-topology independent; wherein said certain one of said nodes is the originator node and said replicating further comprises; establishing another of said nodes as master node, said plurality of nodes except for both said originator node and said master node being slave nodes; storing said updated file on said master node as a backup file; and
,in each of said slave nodes, updating a particular file corresponding to said updated file; associating a file version variable with said updated file; said storing comprising; receiving said updated file in local workspace of said master node; error checking said file version variable to confirm validity of said file version variable; adapting global workspace to receive said updated file from said local workspace; and
,transferring said updated file to said global workspace responsive to said error checking confirming said validity; and
,communicating both creation of said backup file to said originator node and availability of said backup file to said slave nodes responsive to said transferring. - View Dependent Claims (35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 50, 51)
-
-
46. In a computer network having a plurality of nodes, a file replication method executed by a computer, said method comprising:
-
arranging for receipt of an updated file in any one of said nodes; receiving said updated file in a certain one of said nodes; replicating said file in all other of said nodes in a manner that is network-topology independent; wherein said certain one of said nodes is the originator node and said replicating further comprises; establishing another of said nodes as master node, said plurality of nodes except for both said originator node and said master node being slave nodes; storing said updated file on said master node as a backup file; and
,in each of said slave nodes, updating a particular file corresponding to said updated file; establishing a particular file version variable corresponding to said particular file; said each of said slave nodes periodically polling said master node to determine if said particular file contents matches said updated file contents; determining that said particular file contents do not match said updated file contents; and
,synchronizing said particular file contents with said updated file contents. - View Dependent Claims (47)
-
-
48. In a computer network having a plurality of nodes, a file replication method executed by a computer, said method comprising:
-
arranging for receipt of an updated file in any one of said nodes; receiving said updated file in a certain one of said nodes; replicating said file in all other of said nodes in a manner that is network-topology independent; wherein said certain one of said nodes is the originator node and said replicating further comprises; establishing another of said nodes as master node, said plurality of nodes except for both said originator node and said master node being slave nodes; storing said updated file on said master node as a backup file; and
,in each of said slave nodes, updating a particular file corresponding to said updated file; and wherein each of said plurality of nodes is a storage system having storage media and wherein said replicating further comprises; establishing a particular file version variable corresponding to said particular file; storing said particular file version variable and said particular file contents on said storage media to obtain stored particular file version variable and contents; comparing said particular file version variable stored on said storage media in said each of said nodes with said particular file version variable stored elsewhere in its respective node to determine a particular file version variable match for said each of said nodes; and
,synchronizing, responsive to comparing determining said particular file version variable match was not achieved for certain of said nodes, achieving said particular file version variable match for each of said certain nodes. - View Dependent Claims (49)
-
-
52. A method for synchronizing data in a network having a master node and at least one slave node comprising:
-
establishing a DPS in said master node and said at least one slave node; for each said slave node, periodically polling said master node to determine if the version number of said DPS in said master node matches the version number of said DPS in said at least one slave node; for each said slave node, terminating said method if said master node DPS version number matches said at least one slave node DPS version number; and
,if said master node DPS version number does not match said at least one slave node DPS version number thereby providing a mismatch; first determining if said mismatch is due to a DDB version number mismatch only and, if so, first replicating IP addresses of said at least one slave node and terminating said method; and
,if said mismatch is not due to a DDB version number mismatch only, second determining if said mismatch is due to a FVV mismatch only and, if so, second replicating new files associated with a new said FVV and terminating said method; and
,if said mismatch is due to both said DDB version number mismatch and said FVV mismatch, performing said first replicating and said replicating and terminating said method.
-
-
53. A method for synchronizing data on storage media in a network having a master node and at least one other node including slave node and originator node, said method comprising:
-
establishing a DPS in said master node and said at least one other node; for each node in said network, periodically comparing each FVV stored in its respective said storage media with its corresponding FVV stored in its DPS; if there is a match between said storage media FVV and its corresponding said DPS FVV, terminating said method; if there is no match between said storage media FVV and its corresponding said DPS FVV thereby providing a first mismatch, first determining if said first mismatch occurred on said master node or on said at least one other node; if said first mismatch occurred on said at least one other node second determining if said first mismatch is due to a missing file or an extra file on said other node storage media; and if due to said missing file, retrieving said missing file from said originator node or said master node and terminating said method; and
,if due to said extra file, ignoring said extra file and deleting said extra file from said media and terminating said method; and
,if said first mismatch occurred on said master node, third determining if said mismatch is due to a missing file or an extra file on said master node storage media; and if due to said missing file, removing the corresponding file from said DPS in said master node and terminating said method; and
,if due to said extra file, adding said extra file to said DPS in said master node and terminating said method.
-
-
54. A computer program product for use in a computer network having a plurality of nodes, said computer program product including a tangible computer usable medium having computer readable program code thereon for file replication, said program code comprising:
-
program code, distributed on each of said nodes, capable of receiving an updated file in any one of said nodes; program code, distributed throughout said plurality of nodes and responsive to receiving said file in a certain one of said nodes, for replicating said updated file in all other of said nodes in a manner that is network-topology independent; wherein said certain one of said nodes is the originator node and said replicating program code further comprises; program code for establishing another of said nodes as master node, said plurality of nodes except for both said originator node and said master node being slave nodes; program code for storing said updated file on said master node as a backup file; and
,in each of said slave nodes, program code for updating a particular file corresponding to said updated file; and program code for establishing a particular file version variable corresponding to said particular file, and wherein each of said plurality of nodes is a storage computer program product having storage media on which both said particular file version variable and said particular file contents are stored; polling program code, for comparing said particular file version variable stored on said storage media in said each of said nodes with said particular file version variable stored elsewhere in its respective node to determine a particular file version variable match for said each of said nodes; and synchronizing program code, responsive to operation of said polling program code determining said particular file version variable match was not achieved for certain of said nodes for achieving said particular file version variable match for each of said certain nodes. - View Dependent Claims (55)
-
Specification