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

Efficient replication of an expanded partial database

Assignee: Microsoft Technology Licensing LLC
•
Filing: 2001-02-27
•
Granted: 2003-11-04
•
Expires: 2021-02-27
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A replication occurs upon the re-configuration of a partial database to update an additional attribute of an object, and is divided into two sub-requests for replication. The first requests the new attribute from update sequence number zero and the second requests the existing attributes according to their known up-to-date vectors. To facilitate this request, a destination server sends an up-to-date vector table to a source server along with the request for replication. Because the existing attributes are requested from their known up-to-date vectors, rather than from update sequence number zero, this replication request results in less attributes being sent between servers and therefore, provides a more efficient replication.

Inventors

  • 👤 Jeffrey B. Parham
  • 👤 Eyal Schwartz
  • 👤 William B. Lees

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-07 09:29
CPC Classifications
G; G06; G06F; G06F16/00; G06F16/20; G06F16/27; G06F16/278; Y; Y10; Y10S; Y10S707/00; Y10S707/953; Y10S707/955; Y10S707/964; Y10S707/966; Y10S707/99951; Y10S707/99952; Y10S707/99953

Claims Analysis

Total Claims: 8
Claim 1
Independent Claim 409 words
A method in combination with a computer system comprising: a plurality of servers; and a database distributed across the plurality of servers, the database including a plurality of objects, each object having a first attribute and a second attribute, each server periodically replicating values of attributes from another server thereto during a replication, each server maintaining an increasing update sequence number that is increased upon each revision to the attributes of the objects of the database on such server, each server maintaining an attribute value table that includes for each attribute of each object at such server a value of the attribute for the object, the update sequence number of such server when the value was revised, each server maintaining a vector table that includes for each other server from which the server replicates, the update sequence number of such other server at a time of a most recent replication from such other server, wherein the database at a source server includes the first attribute and the second attribute for each object, wherein the database at a destination server originally includes the first attribute and not the second attribute for each object, and wherein the database at the destination server is changed to include the first attribute and the second attribute for each object, the method comprising, upon such change: requesting, by the destination server from the attribute value table of the source server, the value of the second attribute for each object at such source server; receiving, by the destination server into the attribute value table thereof, the value of the second attribute for each object at such source server and the current update sequence number of the destination server to be associated with the value; requesting, by the destination server from the attribute value table of the source server, the value of the first attribute for each object at such source server, if the update sequence number of the source server associated with the value in the attribute value table of the source server is greater than the update sequence number associated with the source server in the vector table of the destination server; receiving, by the destination server into the attribute value table thereof, the value of the first attribute for each object at such source server, if the update sequence number of the source server is greater than the update sequence number associated with the source server in the vector table of the destination server.
Claim 2
Independent Claim 409 words
A method in combination with a computer system comprising: a plurality of servers; and a database distributed across the plurality of servers, the database including a plurality of objects, each object having a first attribute and a second attribute, each server periodically replicating values of attributes from another server thereto during a replication, each server maintaining an increasing update sequence number that is increased upon each revision to the attributes of the objects of the database on such server, each server maintaining an attribute value table that includes for each attribute of each object at such server a value of the attribute for the object, the update sequence number of such server when the value was revised, each server maintaining a vector table that includes for each other server from which the server replicates, the update sequence number of such other server at a time of a most recent replication from such other server, wherein the database at a source server includes the first attribute and the second attribute for each object, wherein the database at a destination server originally includes the first attribute and not the second attribute for each object, and wherein the database at the destination server is changed to include the first attribute and the second attribute for each object, the method comprising, upon such change: requesting, by the destination server from the attribute value table of the source server, the value of the second attribute for each object at such source server; receiving, by the destination server into the attribute value table thereof, the value of the second attribute for each object at such source server and the current update sequence number of the destination server to be associated with the value; requesting, by the destination server from the attribute value table of the source server, the value of the first attribute for each object at such source server, if the update sequence number of the source server associated with the value in the attribute value table of the source server is greater than the update sequence number associated with the source server in the vector table of the destination server; receiving, by the destination server into the attribute value table thereof, the value of the first attribute for each object at such source server, if the update sequence number of the source server is greater than the update sequence number associated with the source server in the vector table of the destination server.
Claim 3
Dependent Claim 38 words
The method of claim 1 further comprising obtaining a current update sequence number of the source server and storing the obtained update sequence number in the vector table of the destination server in association with the source server.
Claim 4
Dependent Claim 49 words
The method of claim 1 further comprising obtaining each update sequence number associated with each server in the vector table of the source server, and storing each obtained update sequence number as the update sequence number associated with the corresponding server in the vector table of the destination server.
Claim 5
Dependent Claim 424 words
A computer-readable medium having computer-executable modules/components thereon for replication of a distributed database in a computer system, the computer system comprising: a plurality of servers; and a database distributed across the plurality of servers, the database including a plurality of objects, each object having a first attribute and a second attribute, each server periodically replicating values of attributes from another server thereto during a replication, each server maintaining an increasing update sequence number that is increased upon each revision to the attributes of the objects of the database on such server, each server maintaining an attribute value table that includes for each attribute of each object at such server a value of the attribute for the object, the update sequence number of such server when the value was revised, each server maintaining a vector table that includes for each other server from which the server replicates, the update sequence number of such other server at a time of a most recent replication from such other server, wherein the database at a source server includes the first attribute and the second attribute for each object, wherein the database at a destination server originally includes the first attribute and not the second attribute for each object, and wherein the database at the destination server is changed to include the first attribute and the second attribute for each object, the modules/components performing upon such change, the steps of: requesting, by the destination server from the attribute value table of the source server, the value of the second attribute for each object at such source server; receiving, by the destination server into the attribute value table thereof, the value of the second attribute for each object at such source server and the current update sequence number of the destination server to be associated with the value; requesting, by the destination server from the attribute value table of the source server, the value of the first attribute for each object at such source server, if the update sequence number of the source server associated with the value in the attribute value table of the source server is greater than the update sequence number associated with the source server in the vector table of the destination server; receiving, by the destination server into the attribute value table thereof, the value of the first attribute for each object at such source server, if the update sequence number of the source server is greater than the update sequence number associated with the source server in the vector table of the destination server.
Claim 6
Dependent Claim 424 words
A computer-readable medium having computer-executable modules/components thereon for replication of a distributed database in a computer system, the computer system comprising: a plurality of servers; and a database distributed across the plurality of servers, the database including a plurality of objects, each object having a first attribute and a second attribute, each server periodically replicating values of attributes from another server thereto during a replication, each server maintaining an increasing update sequence number that is increased upon each revision to the attributes of the objects of the database on such server, each server maintaining an attribute value table that includes for each attribute of each object at such server a value of the attribute for the object, the update sequence number of such server when the value was revised, each server maintaining a vector table that includes for each other server from which the server replicates, the update sequence number of such other server at a time of a most recent replication from such other server, wherein the database at a source server includes the first attribute and the second attribute for each object, wherein the database at a destination server originally includes the first attribute and not the second attribute for each object, and wherein the database at the destination server is changed to include the first attribute and the second attribute for each object, the modules/components performing upon such change, the steps of: requesting, by the destination server from the attribute value table of the source server, the value of the second attribute for each object at such source server; receiving, by the destination server into the attribute value table thereof, the value of the second attribute for each object at such source server and the current update sequence number of the destination server to be associated with the value; requesting, by the destination server from the attribute value table of the source server, the value of the first attribute for each object at such source server, if the update sequence number of the source server associated with the value in the attribute value table of the source server is greater than the update sequence number associated with the source server in the vector table of the destination server; receiving, by the destination server into the attribute value table thereof, the value of the first attribute for each object at such source server, if the update sequence number of the source server is greater than the update sequence number associated with the source server in the vector table of the destination server.
Claim 7
Dependent Claim 43 words
The computer readable medium of claim 4 further comprising the step of obtaining a current update sequence number of the source server and storing the obtained update sequence number in the vector table of the destination server in association with the source server.
Claim 8
Dependent Claim 54 words
The computer readable medium of claim 4 further comprising the step of obtaining each update sequence number associated with each server in the vector table of the source server, and storing each obtained update sequence number as the update sequence number associated with the corresponding server in the vector table of the destination server.

References Cited (Backward Citations)

US5758337A Cited
US5829001A Cited
US6012059A Cited
US6374283B1 Cited
US6256634B1 Cited
US6243715B1 Cited
US6516327B1 Cited
US6529921B1 Cited
US6457011B1 Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2006-11-03 2007-05-05 2007-11-04 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2010-11-03 2011-05-05 2011-11-04 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2014-11-03 2015-05-05 2015-11-04 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag