Combining merkle trees in graph databases
First Claim
1. A computer implemented method of implementing a Merkle tree having bi-directional edges to process data in a database, the method comprising:
- defining, by a hardware processor executing a database management process, a Merkle tree with each node having a hashed value of the metadata for the node and that of any children of that node;
associating non-hashed data with the hashed data for each node, wherein the non-hashed data comprises an initial up-pointer from a child node to any of its immediate parent node;
defining, by the processor, a graph database using graph structures for semantic queries with nodes, bi-directional edges and properties to represent the data;
combining the Merkle tree and graph database to define up-pointers and down-pointers comprising edges between the nodes of the Merkle tree using the bi-directional edges of the graph database to create a reference for the initial up-pointers associated with each Merkle tree node to thereby facilitate efficient traversal of the database through both the up-pointers and down-pointers, and efficient detection of any change in the database through changes in the hashed data, and wherein the bi-directional edges with the initial up-pointers along with the original Merkle tree hash scheme allows for efficient traversal of the tree where the hash values indicate non-changed nodes to prevent traversing corresponding sections of the database, and further allows efficient path definitions and data location by allowing database processes to walk up edges; and
storing the Merkle tree in a memory coupled to the processor.
10 Assignments
0 Petitions
Accused Products
Abstract
Combining a Merkle tree with a graph database by defining a Merkle tree with each node having a hashed value of the metadata for the node and any children of that node, associating non-hashed data with the hashed data for each node, wherein the non-hashed data has an up-pointer from a child node to any of its immediate parent node, and defining bi-directional edges between the nodes of the Merkle tree having a graph database structure to create a reference for the up-pointers associated with each Merkle tree node. The bi-directional edges with up-pointers along with the Merkle tree hash scheme allows efficient traversal of the tree where the hash values indicate non-changed nodes to prevent traversing the database, and further allows efficient path definitions by allowing database processes to walk up edges.
-
Citations
13 Claims
-
1. A computer implemented method of implementing a Merkle tree having bi-directional edges to process data in a database, the method comprising:
-
defining, by a hardware processor executing a database management process, a Merkle tree with each node having a hashed value of the metadata for the node and that of any children of that node; associating non-hashed data with the hashed data for each node, wherein the non-hashed data comprises an initial up-pointer from a child node to any of its immediate parent node; defining, by the processor, a graph database using graph structures for semantic queries with nodes, bi-directional edges and properties to represent the data; combining the Merkle tree and graph database to define up-pointers and down-pointers comprising edges between the nodes of the Merkle tree using the bi-directional edges of the graph database to create a reference for the initial up-pointers associated with each Merkle tree node to thereby facilitate efficient traversal of the database through both the up-pointers and down-pointers, and efficient detection of any change in the database through changes in the hashed data, and wherein the bi-directional edges with the initial up-pointers along with the original Merkle tree hash scheme allows for efficient traversal of the tree where the hash values indicate non-changed nodes to prevent traversing corresponding sections of the database, and further allows efficient path definitions and data location by allowing database processes to walk up edges; and storing the Merkle tree in a memory coupled to the processor. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method of implementing a graph database having hash-encoded nodes to process data in a database, comprising:
-
defining, by a hardware processor executing a database management process, a graph database using graph structures for semantic queries with nodes, bi-directional edges and properties to represent the data; labeling each node with the hashed value of the node and any children to integrate a Merkle tree structure into the graph database; labeling each node with initial up-pointers to the node'"'"'s parent node;
wherein the integrated Merkle tree and graph database define up-pointers and down-pointers comprising edges between the nodes of the Merkle tree using the bi-directional edges of the graph database to create a reference for the initial up-pointers associated with each Merkle tree node to thereby facilitate efficient traversal of the database through both the up-pointers and down-pointers, and efficient detection of any change in the database through changes in the hashed data, wherein the bi-directional edges with the initial up-pointers along with the original Merkle tree hash scheme allows for efficient traversal of the tree where the hash values indicate non-changed nodes to prevent traversing corresponding sections of the database, and further allows efficient path definitions and data location by allowing database processes to walk up edges; andstoring the Merkle tree in a memory coupled to the processor. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A computer program product, comprising a non-transitory computer-readable medium having a computer-readable program code embodied therein, the computer-readable program code adapted to execute a method of implementing a Merkle tree in a graph database to process data in a database, comprising:
-
defining, by a hardware processor executing a database management process, a Merkle tree with each node having a hashed value of the metadata for the node and that of any children of that node; associating non-hashed data with the hashed data for each node, wherein the non-hashed data comprises an initial up-pointer from a child node to any of its immediate parent node; defining, by the processor, a graph database using graph structures for semantic queries with nodes, bi-directional edges and properties to represent the data; combining the Merkle tree and graph database to define up-pointers and down-pointers comprising edges between the nodes of the Merkle tree using the bi-directional edges of the graph database to create a reference for the initial up-pointers associated with each Merkle tree node to thereby facilitate efficient traversal of the database through both the up-pointers and down-pointers, and efficient detection of any change in the database through changes in the hashed data, wherein the bi-directional edges with the initial up-pointers along with the original Merkle tree hash scheme allows for efficient traversal of the tree where the hash values indicate non-changed nodes to prevent traversing corresponding sections of the database, and further allows efficient path definitions and data location by allowing database processes to walk up edges; and storing the Merkle tree in a memory coupled to the processor.
-
Specification