IP Library › Granted Patent US 8,543,539
Granted Patent B2
US 8,543,539 · App. 12/560,422 · Granted Sep 24, 2013

Method and system for capturing change of data

Inventors: Madhu Ahluwalia (Baltimore, MD); Alexei Potiagalov (Richmond, CA)
Assignee: Business Objects Software Limited
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 8,543,539
App. No.
12/560,422
Granted
Sep 24, 2013
Kind
B2
Abstract

Disclosed are systems and methods for synchronizing data present in a target data set with data present in a source data set. The data present in the target data set is partitioned to determine a partition definition of the target data set. A target message digest is calculated for the data present in each partition of the target data set. Based upon the partition definition of the target data set, the data present in the source data set is partitioned. A source message digest is calculated for the data present in each partition of the source data set. The source message digest of a partition is compared with the target message digest of a corresponding partition to capture a change in data present in the source data set. Based upon the captured data, the data in the target data set is synchronized with the data in the source data set.

Claims (59)

1. An article of manufacture, comprising a computer readable medium comprising instructions that, when executed by a computer, cause the computer to execute a method for synchronizing data present in a target data set with data present in a source data set, the method comprising:

partitioning the data present in the target data set to determine a partition definition of the target data set, the partition definition including information about the data present in each partition of the target data set;

calculating a target message digest for the data present in each partition of the target data set;

based upon the partition definition of the target data set, partitioning the data present in the source data set;

calculating a source message digest for the data present in each partition of the source data set;

based upon a change of data and a degree of change of the data in the source data set, repartitioning one or more partitions associated with the change of data in the source data set and recalculating corresponding one or more source message digest for the repartitioned partitions;

comparing the source message digest of a partition of the source data set and the target message digest of a corresponding partition of the target data set to determine a deviation between the source message digest and the target message digest;

and

based upon the deviation, capturing the change of data in the source data set and synchronizing the target data set with the source data set by

repartitioning one or more partitions of the target data set based upon the repartitioning of the source data set and

updating the corresponding partition of the target data set with the captured change of data.

2. The article of manufacture of claim 1 , wherein the information about the data present in each partition of the target data set comprises partitioning information of the corresponding partition.

3. The article of manufacture of claim 1 , wherein the method further comprises creating the target data set by:

retrieving metadata of the data present in the source data set;

creating the target data set based upon the metadata of the source data set; and replicating the data present in the source data set to the target data set.

4. The article of manufacture of claim 1 , wherein calculating the target message digest for the data present in the target data set comprises calculating a value of the target message digest for each partition of the target data set.

5. The article of manufacture of claim 4 further comprises updating the value of the message digest based upon a change in data of the source data set.

6. The article of manufacture of claim 1 , wherein the comparison of the source message digest of the partition of the source data set and the target message digest of the corresponding partition of the target data set comprises:

comparing a value of the source message digest of the partition of the source data set with a value of the target message digest of the corresponding partition of the target data set;

based upon a deviation in the value of the source message digest, capturing modified data from the partition of the source data set; and

updating the corresponding partition of the target data set with the modified data captured from the partition of the source data set.

7. The article of manufacture of claim 6 , wherein the change of data is determined based upon a difference in the value of the source message digest of a partition and the value of the target message digest of a corresponding partition.

8. The article of manufacture of claim 1 , wherein the method further comprises fragmenting the partition definition of the target data set, based upon a degree of modification.

9. The article of manufacture of claim 1 , wherein the method further comprises consolidating the partition definition of the target data set, based upon a degree of modification.

10. A computing device to synchronize data present in a target data set with data present in a source data set comprising:

a processor to read and execute instructions stored in one or more memory elements; and

the one or more memory elements storing instructions related to: a

data partitioner to partition the data present in the target data set to determine a partition definition of the target data set and to partition the data present in the source data set;

a hash calculator in communication with the data partitioner, to utilize a message digest algorithm to calculate a target message digest for the data present in one or more partitions of the target data set and to calculate a source message digest for the data present in one or more partitions of the source data set;

a comparator in communication with the hash calculator, to compare the source message digest of at least one of the partitions of the source data set and the target message digest of a corresponding partition of the target data set; and

a change data capture engine in communication with the comparator and the data partitioner,

to repartition one or more partitions associated with the change of data in the source data set based upon a degree of modification and recalculate corresponding one or more source message digest for the repartitioned partitions,

to determine a deviation between the source message digest and the target message digest based upon a comparison of the source message digest of a partition of the source data set and the target message digest of a corresponding partition of the target data set executed by the comparator, and

to capture the change of data in the source data set based upon the deviation and to synchronize the target data set based upon the change of data in the source data set by

repartitioning one or more partitions of the target data set based upon the repartitioning of the source data set and

updating the corresponding partition of the target data set with the captured change of data.

11. The computing device of claim 10 , further comprising a database storing the source data set and the target data set.

12. The computing device of claim 11 , wherein the database stores the partition definition of the target data set and the target message digest.

13. The computing device of claim 10 further comprising a data set creator for creating the target data set by retrieving data from the source data set, the source data set including metadata associated with the source data set and replicating the data present in the source data set as the target data set in a target database.

14. The computing device of claim 10 , wherein the hash calculator calculates the target message digest for the data present in the partitions of the target data set by calculating a value for data present in partitions of the target data set.

15. The computing device of claim 10 , wherein the change data capture engine updates the value of the target message digest based upon a change in data of the target data set.

16. The computing device of claim 10 , wherein the comparator compares the source message digest for the partition of the source data set and the target message digest for the partition of the target data set by comparing a value of the source message digest with a value of the target message digest.

17. The computing device of claim 10 , wherein the change data capture engine captures modified data in the source data set, based upon a deviation in a value of the source message digest for a partition of the source data set, and updates a corresponding partition of the target data set with the modified data.

18. The computing device of claim 10 , wherein the data partitioner fragments the partition definition of the target data set, or consolidates the partition definition of the target data set based upon a degree of modification.

19. A computer implemented method for synchronizing data present in a target data set with data present in a source data set, the method comprising:

partitioning the data present in the target data set to determine a partition definition of the target data set, the partition definition including information about the data present in each partition of the target data set;

calculating a target message digest for the data present in one or more partitions of the target data set;

based upon the partition definition of the target data set, partitioning the data present in the source data set;

calculating a source message digest for the data present in one or more partitions of the source data set;

based upon a change of data and a degree of change of the data in the source data set, repartitioning one or more partitions associated with the change of data in the source data set and recalculating corresponding one or more source message digest for the repartitioned partitions;

comparing the source message digest of a partition of the source data set and the target message digest of a corresponding partition of the target data set to determine a deviation between the source message digest and the target message digest;

and

based upon the deviation, capturing the change of data in the source data set and synchronizing the target data set with the source data set by

repartitioning one or more partitions of the target data set based upon the repartitioning of the source data set and

updating the corresponding partition of the target data set with the captured change of data.

20. A computer implemented method of claim 19 further comprising creating the target data set by:

retrieving metadata of the data preset in the source data set;

creating the target data set based upon the metadata of the source data set; and

replicating the data present in the source data set to the target data set.

Assignments (2)
CHANGE OF NAME Recorded Aug 26, 2014
From: SAP AG
To: SAP SE
Reel/Frame 033625/0334 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 16, 2010
From: POTIAGALOV, ALEXEI N; AHLUWALIA, MADHU V
To: BUSINESS OBJECTS SOFTWARE LIMITED
Reel/Frame 024995/0339 →
Continuity (1)
Related Publication 20110066593A1 · Mar 17, 2011