IP Library Granted Patent US 7,072,911
Granted Patent B1
US 7,072,911 · App. 10/202,518 · Granted Jul 4, 2006

System and method for incremental replication of changes in a state based distributed database

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,072,911
App. No.
10/202,518
Granted
Jul 4, 2006
Kind
B1
Abstract

A system and method is presented for incremental replication of changes in a state based distributed database synchronization system. If a destination server has one previously established yet unsatisfied synchronization point, a starting synchronization point is formed by extracting the unsatisfied synchronization point from the destination server, identifying a type identifier within the extracted unsatisfied synchronization point identifying a predetermined set of synchronization algorithms and an execution order thereof, identifying a current key within the extracted unsatisfied synchronization point which indicates one of the predetermined set of synchronization algorithms to be started for execution, and adjusting a target state of the destination server to one older than or equal to an established target state specified by the extracted unsatisfied synchronization point. If the destination server has provided no synchronization point, the starting synchronization point is generated by a source server indicating its desired type identifier, target state, and current key.

Claims (90)

1. A method for incremental replication of one or more changes made to at least one partition in a state based distributed database synchronization system, the distributed database synchronization system having at least one source server initiating an incremental replication session with one or more destination servers, the method comprising:

determining, by the source server, a replication state of the destination server;

if the destination server has one previously established yet unsatisfied synchronization point, forming a starting synchronization point by:

extracting the unsatisfied synchronization point from the destination server;

identifying a type identifier within the extracted unsatisfied synchronization point which identifies a predetermined set of synchronization algorithms and an execution order thereof;

identifying a current key within the extracted unsatisfied synchronization point which indicates one of the synchronization algorithms to be started for execution; and

adjusting a target state for the destination server to one older than or equal to an established target state specified by the extracted unsatisfied synchronization point,

if the destination server has provided no synchronization point to the source server, generating a starting synchronization point by the source server indicating the corresponding type identifier, target state, and current key; and

starting the incremental replication of the partition according to the starting synchronization point,

wherein the incremental replication session for the destination server is completed when the target state thereof is reached.

2. The method of claim 1 wherein each current key includes a first positioning element identifying one synchronization algorithm of the predetermined set of synchronization algorithms.

3. The method of claim 2 wherein each current key includes a second positioning element identifying one synchronization element of a set of synchronization elements corresponding to the synchronization algorithm identified by the first positioning element.

4. The method of claim 3 wherein the second positioning element identifies a sub-level current key, thereby forming a nested current key structure.

5. The method of claim 3 further comprising updating each current key of the starting synchronization point sent to and saved on the destination server as the synchronization elements are processed.

6. The method of claim 3 further comprising constraining the use of the starting synchronization point by another source server if such another source server contains the synchronization elements in a different order.

7. The method of claim 3 wherein the synchronization elements are one or more smallest data units for the synchronization commonly agreeable by both the source and destination servers.

8. The method of claim 7 wherein the synchronization elements are objects.

9. The method of claim 7 wherein the synchronization elements are attributes of objects.

10. The method of claim 2 further comprising updating each current key of the starting synchronization point sent to and saved on the destination server as the synchronization algorithms are executed.

11. The method of claim 1 wherein the starting synchronization point further comprises one or more parameters indicating usage constraints.

12. The method of claim 11 wherein the parameters include at least one parameter based on which the source server or the destination server refuse to process the starting synchronization point.

13. The method of claim 1 wherein the target state is adjusted based on the current state of the destination server (DRS), the current state of the source server (SRS), and a configurable state window.

14. The method of claim 1 wherein the starting synchronization point is stored on the destination server for use in the event of intentional or unintentional interruption.

15. The method of claim 1 further comprising deactivating the starting synchronization point after the target state specified by the source server for the destination server has been reached.

16. The method of claim 1 further comprising intentionally interrupting the incremental replication at the request of the source server after it is started.

17. The method of claim 16 further comprising continuing the incremental replication after the intentional interruption.

18. Functional data on a computer-readable media for incremental replication of one or more changes made to at least one partition in a state based distributed database synchronization system, the distributed database synchronization system having at least one source server initiating an incremental replication session with one or more destination servers, the functional data comprising instructions for:

determining, by the source server, a replication state of the destination server;

if the destination server has one previously established yet unsatisfied synchronization point, forming a starting synchronization point by:

extracting the unsatisfied synchronization point from the destination server;

identifying a type identifier within the extracted unsatisfied synchronization point which identifies a predetermined set of synchronization algorithms and an execution order thereof;

identifying a current key within the extracted unsatisfied synchronization point which indicates one of the synchronization algorithms to be started for execution; and

adjusting a target state for the destination server to one older than or equal to an established target state specified by the extracted unsatisfied synchronization point,

if the destination server has provided no synchronization point to the source server, generating a starting synchronization point by the source server indicating the corresponding type identifier, target state, and current key; and

starting the incremental replication of the partition according to the starting synchronization point,

wherein the incremental replication session for the destination server is completed when the target state thereof is reached.

19. The functional data of claim 18 wherein each current key includes a first positioning element identifying one synchronization algorithm of the predetermined set of synchronization algorithms.

20. The functional data of claim 19 wherein each current key includes a second positioning element identifying one synchronization element of a set of synchronization elements corresponding to the synchronization algorithm identified by the first positioning element.

21. The functional data of claim 20 wherein the second positioning element identifies a sub-level current key, thereby forming a nested current key structure.

22. The functional data of claim 20 further comprising updating each current key of the starting synchronization point sent to and saved on the destination server as the synchronization elements are processed during the incremental replication session.

23. The functional data of claim 20 further comprising constraining the use of the starting synchronization point by another source server if such another source server contains the synchronization elements in a different order.

24. The functional data of claim 20 wherein the synchronization elements are one or more smallest data units for the synchronization commonly agreeable by both the source and destination servers.

25. The functional data of claim 20 further comprising updating each current key of the starting synchronization point sent to and saved on the destination server as the synchronization algorithms are executed during the incremental replication.

26. The functional data of claim 18 wherein the starting synchronization point further comprises one or more parameters indicating usage constraints.

27. The functional data of claim 18 wherein the target state is adjusted based on the current state of the destination server (DRS), the current state of the source server (SRS), and a configurable state window.

28. The functional data of claim 18 wherein the starting synchronization point is stored on the destination server for use in the event of intentional or unintentional interruption.

29. The functional data of claim 18 further comprising deactivating the starting synchronization point after the target state specified by the source server for the destination server has been reached.

30. The functional data of claim 18 further comprising intentionally interrupting the incremental replication at the request of the source server after it is started.

31. The functional data of claim 30 further comprising continuing the incremental replication after the intentional interruption.

32. A state based database synchronization system for incremental replication of one or more changes made to at least one object in distributed databases, the state based database synchronization system having at least one source server initiating an incremental replication session with one or more destination servers, the system comprising means for:

determining, by the source server, a replication state of the destination server;

if the destination server has one previously established yet unsatisfied synchronization point, forming a starting synchronization point by:

extracting the unsatisfied synchronization point from the destination server;

identifying a type identifier within the extracted unsatisfied synchronization point which identifies a predetermined set of synchronization algorithms and an execution order thereof;

identifying a current key within the extracted unsatisfied synchronization point which indicates one of the predetermined set of synchronization algorithms to be started for execution; and

adjusting a target state for the destination server to one older than or equal to an established target state specified by the extracted unsatisfied synchronization point,

if the destination server has provided no synchronization point to the source server, generating a starting synchronization point by the source server indicating the corresponding type identifier, target state, and current key; and

starting the incremental replication session according to the starting synchronization point,

wherein the incremental replication session for the destination server is completed when the target state thereof is reached.

33. The system of claim 32 wherein each current key includes a first positioning element identifying one synchronization algorithm of the predetermined set of synchronization algorithms, and a second positioning element identifying one synchronization element of a set of synchronization elements corresponding to the synchronization algorithm identified by the first positioning element.

34. The system of claim 33 wherein the second positioning element identifies a sub-level current key, thereby forming a nested current key structure.

35. The system of claim 33 wherein each current key of the starting synchronization point sent to and saved on the destination server is updated as the synchronization elements are processed or the synchronization algorithms are executed during the incremental replication session.

36. The system of claim 33 further comprising means for constraining the use of the starting synchronization point by another source server if the synchronization elements on such another source server are in a different ordering.

37. The system of claim 33 wherein the synchronization elements are objects.

38. The system of claim 32 wherein the starting synchronization point further comprises one or more parameters indicating usage constraints.

39. The system of claim 38 wherein the parameters include at least one parameter based on which the source server or the destination server refuse to process the starting synchronization point.

40. The system of claim 32 wherein the target state is adjusted based on the current state of the destination server (DRS), the current state of the source server (SRS), and a configurable state window.

41. A method for incremental replication of one or more changes made to at least one partition in a state based distributed database synchronization system, the state based distributed database synchronization system having at least one source server initiating an incremental replication session with one or more destination servers, the method comprising:

determining, by the source server, a replication state of the destination server;

extracting an unsatisfied synchronization point from the destination server;

identifying a type identifier within the extracted unsatisfied synchronization point which identifies a predetermined set of synchronization algorithms and an execution order thereof;

identifying a current key within the extracted unsatisfied synchronization point which indicates one synchronization algorithm of the predetermined set of synchronization algorithms to be started for execution;

setting a target state for the destination server as specified by the extracted unsatisfied synchronization point,

using the information extracted from the unsatisfied synchronization point of the destination server to form the starting synchronization point

sending the synchronization point from the source server to the destination server;

requesting the destination server to start the incremental replication session based on the synchronization point; and

implementing the incremental replication session on the destination server according to the synchronization point if the destination server does not refuse to accept the request,

wherein the synchronization point uniquely identifies one or more synchronization algorithms and synchronization elements to be processed during the incremental replication session.

42. The method of claim 40 wherein each current key includes a first positioning element identifying one synchronization algorithm.

43. The method of claim 42 wherein each current key includes a second positioning element identifying at least one synchronization element corresponding to the synchronization algorithm identified by the first positioning element.

44. The method of claim 43 wherein the second positioning element identifies a sub-level current key, thereby forming a nested current key structure.

45. The method of claim 43 wherein the synchronization elements are one or more smallest data units for the synchronization commonly agreeable by both the source and destination servers.

46. The method of claim 41 further comprising updating each current key of the starting synchronization point sent to and saved on the destination server as the synchronization elements are processed or as the synchronization algorithms are executed during the incremental replication session.

47. The method of claim 41 further comprising constraining the use of the starting synchronization point by another source server if the another source server contains the synchronization elements in different ordering.

48. The method of claim 41 wherein the synchronization point further comprises one or more parameters indicating usage constraints.

49. The method of claim 48 wherein the parameters include at least one parameter based on which the source server or the destination server refuse to process the starting synchronization point.

50. The method of claim 41 wherein the target state is set based on the current state of the destination server (DRS), the current state of the source server (SRS), and a configurable state window.

51. The method of claim 41 further comprising deactivating the starting synchronization point after the target state specified by the source server for the destination server has been reached.

52. The method of claim 41 further comprising intentionally interrupting the incremental replication at the request of the source server after it is started.

53. The method of claim 41 further comprising, if the destination server provides no synchronization point to the source server, generating the starting synchronization point by the source server indicating the corresponding type identifier, target state, and current key.

Assignments (11)
RELEASE OF SECURITY INTEREST Recorded Oct 26, 2020
From: JEFFERIES FINANCE LLC
To: RPX CORPORATION
Reel/Frame 054486/0422 →
SECURITY INTEREST Recorded Jun 29, 2018
From: RPX CORPORATION
To: JEFFERIES FINANCE LLC
Reel/Frame 046486/0433 →
RELEASE (REEL 038041 / FRAME 0001) Recorded Jan 2, 2018
From: JPMORGAN CHASE BANK, N.A.
To: RPX CORPORATION; RPX CLEARINGHOUSE LLC
Reel/Frame 044970/0030 →
SECURITY AGREEMENT Recorded Mar 9, 2016
From: RPX CORPORATION; RPX CLEARINGHOUSE LLC
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 038041/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 11, 2016
From: NOVELL INTELLECTUAL PROPERTY HOLDINGS, INC.
To: RPX CORPORATION
Reel/Frame 037809/0057 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 1, 2011
From: CPTN HOLDINGS LLC
To: NOVELL INTELLECTUAL PROPERTY HOLDING, INC.
Reel/Frame 027325/0131 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 30, 2011
From: CPTN HOLDINGS LLC
To: NOVELL INTELLECTUAL PROPERTY HOLDINGS, INC.
Reel/Frame 027465/0206 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 30, 2011
From: NOVELL,INC.
To: CPTN HOLDINGS LLC
Reel/Frame 027465/0227 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 2, 2011
From: CPTN HOLDINGS LLC
To: NOVELL INTELLECTUAL PROPERTY HOLDINGS INC.
Reel/Frame 027162/0342 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 1, 2011
From: NOVELL, INC.
To: CPTN HOLDINGS LLC
Reel/Frame 027157/0583 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 24, 2002
From: DOMAN, THOMAS E.; MCLAIN, STEVEN S.; BUSS, DUANE F.
To: NOVELL, INC.
Reel/Frame 013141/0352 →