← Back to Patent Explorer
US6202085B1 Expired / Lapsed US ⏱️ 0.0 years remaining

System and method for incremental change synchronization between multiple copies of data

Assignee: Microsoft Technology Licensing LLC
•
Filing: 1996-12-06
•
Granted: 2001-03-13
•
Expires: 2016-12-06
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A system and method for incremental change synchronization among multiple copies of data is disclosed. To achieve the synchronization a genera synchronization model is used. The synchronization model establishes a one-way data flow path to allow incremental changes to be transferred from a copy of data that incorporates the incremental changes to a copy of data that does not yet incorporate the incremental changes. To achieve this one-way data flow path, the synchronization model uses an agent, a data collector, and a data synchronizer. The data collector collects incremental changes transferred to it and applies the incremental changes to a copy of data. A data synchronizer transfers incremental changes to a data collector. An agent controls the synchronization process by making a connection between a data collector and a data synchronizer and then directing the data synchronizer to transfer data to the data collector. If bidirectional data flow is necessary to achieve synchronization between two copies of data, a one-way data flow path is established first in one direction and after all incremental changes have been passed in that direction, a data flow path is established in the opposite direction to pass incremental changes in the opposite direction.

Inventors

  • 👤 Max L. Benson
  • 👤 Dinarte Morais
  • 👤 Scott Norin
  • 👤 William P. Champion
  • 👤 Thomas F. Fakes
  • 👤 Milind M. Joshi

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-24 16:29
CPC Classifications
G; G06; G06F; G06F16/00; G06F16/20; G06F16/27; G06F16/23; G06F16/2308

Claims Analysis

Total Claims: 21
Claim 1
Independent Claim 317 words
In a non-integral node of a replication network that also includes an integral node, a method of synchronizing a second copy of data stored at the non-integral node with a first copy of data that is stored at the integral node and has had new incremental changes made thereto that are not yet incorporated into said second copy without transmitting the entire first copy to the non-integral node, said method comprising the steps of: maintaining the second copy at the non-integral node, which is capable of communicating with the replication network; storing, at the non-integral node, synchronization state information containing information regarding the synchronization state of the second copy, the synchronization state information including information identifying incremental changes already held in the second copy; initiating execution of an agent process at the non-integral node, the agent process being adapted for controlling transfer of new incremental changes from said first copy stored at the integral node to said second copy by controlling a data synchronizer at the replication network, the data synchronizer being adapted for transferring incremental changes from said first copy; said agent process sending the synchronization state information to said data synchronizer; said agent process directing said data synchronizer to transfer said new incremental changes from said first copy to said second copy; receiving and applying, at the non-integral node, the new incremental changes transferred from the data synchronizer without receiving said incremental changes already held in the second copy, so as to synchronize the second copy with the first copy, the new incremental changes having been identified by the data synchronizer by comparing the synchronization state information sent to the data synchronizer with information identifying incremental changes included in the first copy; and receiving, at the non-integral node, updated synchronization state information sent from the data synchronizer, the updated synchronization state information reflecting the new incremental changes that have been transferred to the second copy.
Claim 2
Dependent Claim 317 words
In a non-integral node of a replication network that also includes an integral node, a method of synchronizing a second copy of data stored at the non-integral node with a first copy of data that is stored at the integral node and has had new incremental changes made thereto that are not yet incorporated into said second copy without transmitting the entire first copy to the non-integral node, said method comprising the steps of: maintaining the second copy at the non-integral node, which is capable of communicating with the replication network; storing, at the non-integral node, synchronization state information containing information regarding the synchronization state of the second copy, the synchronization state information including information identifying incremental changes already held in the second copy; initiating execution of an agent process at the non-integral node, the agent process being adapted for controlling transfer of new incremental changes from said first copy stored at the integral node to said second copy by controlling a data synchronizer at the replication network, the data synchronizer being adapted for transferring incremental changes from said first copy; said agent process sending the synchronization state information to said data synchronizer; said agent process directing said data synchronizer to transfer said new incremental changes from said first copy to said second copy; receiving and applying, at the non-integral node, the new incremental changes transferred from the data synchronizer without receiving said incremental changes already held in the second copy, so as to synchronize the second copy with the first copy, the new incremental changes having been identified by the data synchronizer by comparing the synchronization state information sent to the data synchronizer with information identifying incremental changes included in the first copy; and receiving, at the non-integral node, updated synchronization state information sent from the data synchronizer, the updated synchronization state information reflecting the new incremental changes that have been transferred to the second copy.
Claim 3
Dependent Claim 88 words
A method of synchronizing a second copy of data with a first copy of data as recited in claim 1 further comprising the step of said agent process making a connection between said data synchronizer and a data collector at the non-integral node, the data collector being adapted for receiving said new incremental changes from said data synchronizer and for making said received incremental changes part of said second copy, said connection allowing said new incremental changes to be transferred from said data synchronizer to said data collector.
Claim 4
Dependent Claim 67 words
A method of synchronizing a second copy of data with a first copy of data as recited in claim 1 wherein the step of said agent process sending the synchronization state information comprises the step of the agent process passing an I/O stream to said data synchronizer that allows said data synchronizer to access said synchronization state information by reading and writing information to said I/O stream.
Claim 5
Dependent Claim 65 words
A method of synchronizing a second copy of data with a first copy of data as recited in claim 1 wherein said first copy has a first data format and said second copy has a second data format different from the first data format, the method further comprising the step of storing said new incremental changes in said second copy in said second data format.
Claim 6
Independent Claim 288 words
A method of synchronizing a second copy of data with a first copy of data that has had new incremental changes made thereto that are not yet incorporated into said second copy, said method comprising the steps of: maintaining the first copy at an integral node of a replication network; maintaining the second copy at a non-integral node that is capable of communicating with the replication network; storing, at the non-integral node, synchronization state information containing information regarding the synchronization state of the second copy, the synchronization state information including information identifying incremental changes already held in the second copy; initiating execution of an agent process at the non-integral node, the agent process being adapted for controlling transfer of new incremental changes from said first copy to said second copy by controlling a data synchronizer at the replication network, the data synchronizer being adapted for transferring incremental changes from said first copy; said agent process sending, to said data synchronizer, the synchronization state information stored at the non-integral node; based on a comparison between the synchronization state information and information identifying incremental changes included in the first copy, said data synchronizer determining the new incremental changes to be transferred from said first copy to said second copy; said data synchronizer, being directed by the agent process, transferring at least a portion of said new incremental changes from said first copy to said second copy without transferring the incremental changes already held in the second copy, so as to synchronize the second copy with the first copy; and the data synchronizer updating the synchronization state information to reflect the new incremental changes being transferred to the second copy and transferring the updated synchronization state information to the non-integral node.
Claim 7
Independent Claim 288 words
A method of synchronizing a second copy of data with a first copy of data that has had new incremental changes made thereto that are not yet incorporated into said second copy, said method comprising the steps of: maintaining the first copy at an integral node of a replication network; maintaining the second copy at a non-integral node that is capable of communicating with the replication network; storing, at the non-integral node, synchronization state information containing information regarding the synchronization state of the second copy, the synchronization state information including information identifying incremental changes already held in the second copy; initiating execution of an agent process at the non-integral node, the agent process being adapted for controlling transfer of new incremental changes from said first copy to said second copy by controlling a data synchronizer at the replication network, the data synchronizer being adapted for transferring incremental changes from said first copy; said agent process sending, to said data synchronizer, the synchronization state information stored at the non-integral node; based on a comparison between the synchronization state information and information identifying incremental changes included in the first copy, said data synchronizer determining the new incremental changes to be transferred from said first copy to said second copy; said data synchronizer, being directed by the agent process, transferring at least a portion of said new incremental changes from said first copy to said second copy without transferring the incremental changes already held in the second copy, so as to synchronize the second copy with the first copy; and the data synchronizer updating the synchronization state information to reflect the new incremental changes being transferred to the second copy and transferring the updated synchronization state information to the non-integral node.
Claim 8
Dependent Claim 68 words
A method of synchronizing a second copy of data with a first copy of data as recited in claim 5 wherein the step of said agent process sending said synchronization state information comprises the step of said agent process passing an I/O stream to said data synchronizer that allows said data synchronizer to access to said synchronization state information by reading and writing information to said I/O stream.
Claim 9
Dependent Claim 87 words
A method of synchronizing a second copy of data with a first copy of data as recited in claim 5 further comprising the step of said agent process making a connection between said data synchronizer and a data collector at the non-integral node, the data collector being adapted for receiving said new incremental changes from said data synchronizer and for making said received changes part of said second copy, said connection allowing said new incremental changes to be transferred from said data synchronizer to said data collector.
Claim 10
Dependent Claim 69 words
A method of synchronizing a second copy of data with a first copy of data as recited in claim 7 , wherein the step of the data synchronizer updating the synchronization state is conducted in response to said agent process directing said data synchronizer to update said synchronization state information so that said synchronization state reflects the transfer of said at least a portion of said new incremental changes.
Claim 11
Dependent Claim 48 words
A method of synchronizing a second copy of data with a first copy of data as recited in claim 8 wherein said data synchronizer updates said synchronization state information by writing updated synchronization state information to an I/O stream passed to said data synchronizer by said agent process.
Claim 12
Dependent Claim 104 words
A method of synchronizing a second copy of data with a first copy of data as recited in claim 8 further comprising the step of said agent process repeatedly directing said data synchronizer to transfer incremental changes to said data collector so that each time said data synchronizer is directed to transfer incremental changes, a further portion of said new incremental changes are transferred to said data collector, said agent process repeatedly directing said data synchronizer to transfer incremental changes until either all new incremental changes have been transferred to said data collector or until said agent process is directed to stop synchronizing data.
Claim 13
Dependent Claim 71 words
A method of synchronizing a second copy of data with a first copy of data as recited in claim 10 further comprising the step of said data collector receiving incremental changes transferred from said data synchronizer and applying said received incremental changes to said second copy in order to synchronize said second copy with said first copy as said agent process repeatedly directs said data synchronizer to transfer said incremental changes.
Claim 14
Dependent Claim 65 words
A method of synchronizing a second copy of data with a first copy of data as recited in claim 10 wherein said first copy has a first data format and said second copy has a second data format different from said first data format, the method further comprising the step of storing said received incremental changes in said second copy in said second data format.
Claim 15
Dependent Claim 293 words
A computer-readable medium having computer-executable instructions comprising for implementing, at a non-integral node capable of communicating with a replication network, a method of synchronizing a second copy of data stored at the non-integral node with a first copy of data that is stored at an integral node of the replication network and has had new incremental changes made thereto that are not yet incorporated into said second copy without the entire first copy being transmitted to the non-integral node, the computer-executable instructions comprising: means for maintaining the second copy at the non-integral node; means for storing, at the non-integral node, synchronization state information containing information regarding the synchronization state of the second copy, the synchronization state information including information identifying incremental changes already held in the second copy; means for sending the synchronization state information from the non-integral node to a synchronization means for synchronizing data, the synchronization means operating at the integral node, where the first copy is stored; means for collecting said new incremental changes having been transferred from the synchronization means to the non-integral node without collecting said incremental changes already held in the second copy, the new incremental changes having been identified by the synchronization means by comparing the synchronization state information that has been sent to the synchronization means with information identifying incremental changes included in the first copy; means for controlling transfer of said new incremental changes from said synchronization means so that said synchronization means transfers said new incremental changes to said means for collecting under the direction of said means for controlling; means for receiving, from the synchronization means, an update of synchronization state information reflecting the synchronization state of said second copy of data; and means for storing said update at the non-integral node.
Claim 16
Dependent Claim 293 words
A computer-readable medium having computer-executable instructions comprising for implementing, at a non-integral node capable of communicating with a replication network, a method of synchronizing a second copy of data stored at the non-integral node with a first copy of data that is stored at an integral node of the replication network and has had new incremental changes made thereto that are not yet incorporated into said second copy without the entire first copy being transmitted to the non-integral node, the computer-executable instructions comprising: means for maintaining the second copy at the non-integral node; means for storing, at the non-integral node, synchronization state information containing information regarding the synchronization state of the second copy, the synchronization state information including information identifying incremental changes already held in the second copy; means for sending the synchronization state information from the non-integral node to a synchronization means for synchronizing data, the synchronization means operating at the integral node, where the first copy is stored; means for collecting said new incremental changes having been transferred from the synchronization means to the non-integral node without collecting said incremental changes already held in the second copy, the new incremental changes having been identified by the synchronization means by comparing the synchronization state information that has been sent to the synchronization means with information identifying incremental changes included in the first copy; means for controlling transfer of said new incremental changes from said synchronization means so that said synchronization means transfers said new incremental changes to said means for collecting under the direction of said means for controlling; means for receiving, from the synchronization means, an update of synchronization state information reflecting the synchronization state of said second copy of data; and means for storing said update at the non-integral node.
Claim 17
Dependent Claim 40 words
A computer-readable medium as recited in claim 13 wherein said means for collecting is further adapted for processing said transferred incremental changes according to a designated processing strategy so that said transferred incremental changes are incorporated into said second copy.
Claim 18
Dependent Claim 40 words
A computer-readable medium as recited in claim 14 wherein said transferred incremental changes are incorporated into said second copy by applying said transferred incremental changes to said second copy to bring said second copy current with said transferred incremental changes.
Claim 19
Dependent Claim 29 words
A computer-readable medium as recited in claim 15 wherein said transferred incremental changes are incorporated into said second copy by storing said transferred incremental change in said second copy.
Claim 20
Dependent Claim 43 words
A computer-readable medium as recited in claim 13 wherein said means for sending operates by passing an I/O stream to said synchronization means so that said synchronization means can access said synchronization state information by reading or writing data to said I/O stream.
Claim 21
Dependent Claim 43 words
A computer-readable medium as recited in claim 13 wherein said means for controlling is further adapted for forming a connection between said means for collecting and said synchronization means so that said synchronization means can transfer said new incremental changes using said connection.

References Cited (Backward Citations)

US5600834A Cited
US5737601A Cited
US5790789A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2004-03-12 2004-09-11 2005-03-13 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2008-03-12 2008-09-11 2009-03-13 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2012-03-12 2012-09-11 2013-03-13 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag