IP Library Granted Patent US 9,317,518
Granted Patent B2
US 9,317,518 · App. 13/660,643 · Granted Apr 19, 2016

Data synchronization

Inventors: Gil Tzadikevitch (Rishon Leziyon, IL); Nimrod Nahum (Nitzanei Oz, IL); Ben Cohen (Jerusalem, IL)
Assignee: Hewlett Packard Enterprise Development LP
G06F17/30156G06F17/30076G06F17/30179
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 9,317,518
App. No.
13/660,643
Filed
Oct 25, 2012
Granted
Apr 19, 2016
Kind
B2
Art Unit
2161
USPC
707/610
Abstract

An example of synchronizing data can include converting a data tree structure into a dependency graph and reconciling nodes with a target data structure. Synchronizing data can include merging any duplicate information. Furthermore, synchronizing data can include keeping identifiers of reconciled information with non-reconciled information to locate the reconciled information when the remaining information is reconciled.

Claims (39)

1. A non-transitory machine-readable medium storing a set of instructions executable by a processor to cause a computer to:

convert a source data tree structure into a dependency graph that comprises a dependency reference for each of a plurality of nodes of the dependency graph, wherein the dependency reference for each node comprises a number of parent dependency nodes and a number of child dependency nodes;

merge duplicate nodes in the dependency graph together into a merged node;

update the dependency graph based on the merge;

insert the merged node into a queue;

insert a child node of the merged node into the queue; and

reconcile the merged node in the queue with a first corresponding node of a target location based on the dependency reference of the merged node, and after the merged node is reconciled, reconcile the child node with a second corresponding node of the target location based on the dependency reference of the child node.

2. The non-transitory machine-readable medium of claim 1 , wherein inserting the merged node includes relocating the merged node from the dependency graph to the queue when the node contains no parent dependency nodes before the merged node is subsequently reconciled with the target location.

3. The non-transitory machine-readable medium of claim 1 , wherein reconciling the merged node comprises verifying that the merged node is in the target location according to an operation type for a particular type of record of the merged node.

4. The non-transitory machine-readable medium of claim 1 , wherein reconciling the merged node comprises updating the merged node in the target location according to an operation type for a particular type of record of the merged node.

5. The non-transitory machine-readable medium of claim 1 , wherein reconciling the nodes comprises holding a primary key identification (ID) with the target location for each reconciled node comprising a child dependency node.

6. The non-transitory machine-readable medium of claim 5 , comprising updating all child dependency nodes with a real primary key ID of the corresponding reconciled node.

7. The method of claim 1 , wherein reconciling the merged node and child node with the first and the second corresponding nodes of the target location comprises verifying the merged node and child node are already in the target location.

8. The non-transitory machine-readable medium of claim 1 , wherein reconciling the notes includes marking as failed a node that comprises a parent dependency node that failed to be reconciled.

9. A method for synchronizing data, comprising:

utilizing a processor to execute instructions located on a non-transitory medium for:

converting a source data tree structure into a dependency graph that comprises a dependency reference for each node of a plurality of nodes;

placing a merged node of the plurality of nodes in a queue when the node has a number of dependencies;

removing the merged node from the queue to be reconciled;

reconciling the merged node in the dependency graph with a first corresponding node of a target location based on the dependency reference of the merged node; and

after reconciling the merged node, reconciling a child node of the merged node in the dependency graph with a second corresponding node of the target location based on the dependency reference of the child node.

10. The method of claim 9 , wherein the dependency reference for each node comprises a number of parent dependency nodes and a number of child dependency nodes.

11. The method of claim 9 , wherein the number of dependencies comprises no parent dependency nodes.

12. The method of claim 9 , wherein a node in the queue is reconciled to the target location.

13. The method of claim 9 , wherein the source data tree structure is organized by at least one of value, alphabet, and usage.

14. A system for synchronizing data, the system comprising a processing resource in communication with a non-transitory machine readable medium, wherein the non-transitory machine readable medium includes a set of instructions and wherein the processing resource is designed to carry out the set of instructions to:

convert a source data tree structure into a dependency graph that comprises a dependency reference for each of a plurality of nodes, wherein the dependency reference for each node comprises a number of parent dependency nodes and a number of child dependency nodes;

merge duplicate nodes in the dependency graph together into a merged node;

update the dependency graph based on the merge;

insert the merged node of the plurality of nodes in the dependency graph into a queue;

insert a child node of the merged node in the dependency graph into the queue;

remove the merged node and the child node out of the queue; and

reconcile the merged node removed from the queue with a first corresponding node of a target location based on the dependency reference of the merged node, and after the merged node is reconciled, reconcile the child node with a second corresponding node of the target location based on the dependency reference of the child node.

15. The system of claim 14 , wherein reconciling the merged node and the child node comprises transferring the reconciled merged node and the reconciled child node to the target location.

16. The system of claim 14 , wherein reconciling the merged node and the child node comprises holding a primary key identification (ID) with the target location for each reconciled node comprising a child dependency node and updating all child dependency nodes with a real primary key identification of the corresponding reconciled node.

17. The system of claim 16 , wherein the updated node is inserted into a queue when filled with real primary key IDs that correspond to each of the parent dependency nodes of the updated node.

18. The system of claim 14 , wherein the nodes are repeatedly reconciled until all nodes are transferred to the target location.

19. The system of claim 14 , wherein the target location is a data structure different than the source data tree.

20. The system of claim 14 , wherein reconciling the merged node and the child node removed from the queue with the first and the second corresponding nodes of the target location comprises verifying that the first and the second corresponding nodes already in the target location are updated.

Assignments (8)
RELEASE OF SECURITY INTEREST REEL/FRAME 044183/0718 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC (F/K/A ENTIT SOFTWARE LLC); BORLAND SOFTWARE CORPORATION; MICRO FOCUS (US), INC.; SERENA SOFTWARE, INC; ATTACHMATE CORPORATION; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.); NETIQ CORPORATION
Reel/Frame 062746/0399 →
RELEASE OF SECURITY INTEREST REEL/FRAME 044183/0577 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC (F/K/A ENTIT SOFTWARE LLC)
Reel/Frame 063560/0001 →
CHANGE OF NAME Recorded Aug 8, 2019
From: ENTIT SOFTWARE LLC
To: MICRO FOCUS LLC
Reel/Frame 050004/0001 →
SECURITY INTEREST Recorded Oct 11, 2017
From: ENTIT SOFTWARE LLC; ARCSIGHT, LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 044183/0577 →
SECURITY INTEREST Recorded Oct 11, 2017
From: ATTACHMATE CORPORATION; BORLAND SOFTWARE CORPORATION; NETIQ CORPORATION; MICRO FOCUS (US), INC.; MICRO FOCUS SOFTWARE, INC.; ENTIT SOFTWARE LLC; ARCSIGHT, LLC; SERENA SOFTWARE, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 044183/0718 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 9, 2017
From: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
To: ENTIT SOFTWARE LLC
Reel/Frame 042746/0130 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2015
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 037079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 25, 2012
From: TZADIKEVITCH, GIL; NAHUM, NIMROD; COHEN, BEN
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 029194/0588 →
Continuity (1)
Related Publication 20140122422A1 · May 1, 2014