IP Library › Granted Patent US 9,323,864
Granted Patent B2
US 9,323,864 · App. 13/967,031 · Granted Apr 26, 2016

Method and apparatus for identifying the optimal schema to store graph data in a relational store

Inventors: Mihaela Ancuta Bornea (White Plains, NY); Julian Timothy Dolby (Bronx, NY); Achille Belly Fokoue-Nkoutche (White Plains, NY); Anastasios Kementsietsidis (New York, NY); Kavitha Srinivas (Rye, NY)
Assignee: International Business Machines Corporation
G06F17/30958G06F17/30292
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,323,864
App. No.
13/967,031
Granted
Apr 26, 2016
Kind
B2
Abstract

A system for identifying a schema for storing graph data includes a database containing a graph dataset of data and relationships between data pairs and a list of storage methods that each are a distinct structural arrangement of the data and relationships from the graph data set. An analyzer module collects statistics for the graph dataset, and a data classification module uses the collected statistics to calculate metrics describing the data and relationships in the graph dataset, uses the calculated metrics to group the data and relationships into a plurality of graph dataset subsets and. associates each graph dataset subset with one of the plurality of storage methods. The resulting group of storage methods associated with the plurality of graph dataset subsets includes a unique storage method for each graph dataset subset. The data and relationships in each graph dataset subset are arranged in accordance with associated storage methods.

Claims (49)

1. A method for identifying a schema for storing graph data in a relational store, the method comprising:

identifying in a database a graph dataset comprising data arranged in a plurality of nodes and relationships between data pairs illustrated as a plurality of edges between pairs of nodes;

identifying a plurality of storage methods, each storage method comprising a distinct structural arrangement of the data and relationships from the graph data set;

identifying a plurality of graph dataset subsets, each graph dataset subset comprising at least a portion of the data and relationships in the graph dataset;

associating each graph dataset subset with one of the plurality of storage methods, wherein a group of storage methods associated with the plurality of graph dataset subsets includes at least two separate storage methods; and

arranging the data and relationships in each graph dataset subset in accordance with its associated storage method to create the schema for the graph dataset in the database.

2. The method of claim 1 , wherein the graph dataset comprises a resource description framework dataset comprising:

a plurality of subjects and a plurality of objects, each subject and each object comprising a distinct node; and

a plurality of predicates expressing relationships between subject and object pairs, each predicate comprising one or more edges.

3. The method of claim 1 , wherein the plurality of storage methods comprise a triple-store storage method, a property cluster storage method, a property class storage method, a vertically partitioned column storage method or an entity oriented storage method.

4. The method of claim 1 , wherein identifying the plurality of graph dataset subsets further comprises:

collecting statistics for the graph dataset, the statistics comprising an identification of the content of each individual node in the graph dataset, an identification of all relationships associated with edges in the graph dataset and associations among data and relationships as indicated by the structure of the nodes and edges in the graph dataset;

using the collected statistics to calculate metrics describing the data and relationships in the graph dataset; and

using the calculated metrics to group the data and relationships into the plurality of graph dataset subsets.

5. The method of claim 4 , wherein the metrics comprise co-occurrences of relationships linking data associated with a given entity, co-occurrences of relationships linking data of a given type, selectivity of a given relationship, number of distinct data values associated with a given relationship, an identification of single-valued relationships and multi-valued relationships or selectiveness of given data values by relationship.

6. The method claim 4 , wherein the method further comprises identifying a storage method for each graph dataset subset to provide the structural arrangement for the data and relationships in each graph dataset subset that minimizes a processing time for queries over each graph dataset subset.

7. The method of claim 1 , wherein one or more data values and one or more relationships are contained in more than one graph dataset subsets.

8. The method of claim 1 , wherein the group of storage methods associated with the plurality of graph dataset subsets comprises a unique storage method for each graph dataset subset.

9. The method of claim 1 , further comprising using the plurality of graph datasets arranged in accordance with the associated storage methods to process queries over the graph dataset.

10. A non-transitory computer-readable storage medium containing a computer-readable code that when read by a computer causes the computer to perform a method for identifying a schema for storing graph data in a relational store, the method comprising:

identifying a graph dataset comprising data arranged in a plurality of nodes and relationships between data pairs illustrated as a plurality of edges between pairs of nodes;

identifying a plurality of storage methods, each storage method comprising a distinct structural arrangement of the data and relationships from the graph data set;

identifying a plurality of graph dataset subsets, each graph dataset subset comprising at least a portion of the data and relationships in the graph dataset;

associating each graph dataset subset with one of the plurality of storage methods, wherein a group of storage methods associated with the plurality of graph dataset subsets includes at least two separate storage methods; and

arranging the data and relationships in each graph dataset subset in accordance with its associated storage method to create the schema for the graph dataset.

11. The non-transitory computer-readable storage medium of claim 10 , wherein the graph dataset comprises a resource description framework dataset comprising:

a plurality of subjects and a plurality of objects, each subject and each object comprising a distinct node; and

a plurality of predicates expressing relationships between subject and object pairs, each predicate comprising one or more edges.

12. The non-transitory computer-readable storage medium of claim 10 , wherein the plurality of storage methods comprise a triple-store storage method, a property cluster storage method, a property class storage method, a vertically partitioned column storage method or an entity oriented storage method.

13. The non-transitory computer-readable storage medium of claim 10 , wherein identifying the plurality of graph dataset subsets further comprises:

collecting statistics for the graph dataset, the statistics comprising an identification of the content of each individual node in the graph dataset, an identification of all relationships associated with edges in the graph dataset and associations among data and relationships as indicated by the structure of the nodes and edges in the graph dataset;

using the collected statistics to calculate metrics describing the data and relationships in the graph dataset; and

using the calculated metrics to group the data and relationships into the plurality of graph dataset subsets.

14. The non-transitory computer-readable storage medium of claim 13 , wherein the metrics comprise co-occurrences of relationships linking data associated with a given entity, co-occurrences of relationships linking data of a given type, selectivity of a given relationship, number of distinct data values associated with a given relationship, an identification of single-valued relationships and multi-valued relationships or selectiveness of given data values by relationship.

15. The non-transitory computer-readable storage medium of claim 13 , wherein the method further comprises identifying a storage method for each graph dataset subset to provide the structural arrangement for the data and relationships in each graph dataset subset that minimizes a processing time for queries over each graph dataset subset.

16. The non-transitory computer-readable storage medium of claim 10 , wherein one or more data values and one or more relationships are contained in more than one graph dataset subsets.

17. The non-transitory computer-readable storage medium of claim 10 , wherein the group of storage methods associated with the plurality of graph dataset subsets comprises a unique storage method for each graph dataset subset.

18. The non-transitory computer-readable storage medium of claim 10 , further comprising using the plurality of graph datasets arranged in accordance with the associated storage methods to process queries over the graph dataset.

19. A system for identifying a schema for storing graph data in a relational store, the system comprising:

a database comprising:

at least one a graph dataset, each graph dataset comprising data arranged in a plurality of nodes and relationships between data pairs illustrated as a plurality of edges between pairs of nodes; and

a schema list comprising a plurality of storage methods, each storage method comprising a distinct structural arrangement of the data and relationships from the graph data set;

an analyzer module executed by a processor on a computing system and in communication with the database, the data analyzer module configured to collect statistics for the graph dataset, the statistics comprising an identification of the content of each individual node in the graph dataset, an identification of all relationships associated with edges in the graph dataset and associations among data and relationships as indicated by the structure of the nodes and edges in the graph dataset;

a data classification module executing on the computing system, in communication with the database and configured to:

use the collected statistics to calculate metrics describing the data and relationships in the graph dataset; and

use the calculated metrics to group the data and relationships into a plurality of graph dataset subsets, each graph dataset subset comprising at least a portion of the data and relationships in the graph dataset; and

associate each graph dataset subset with one of the plurality of storage methods, wherein a group of storage methods associated with the plurality of graph dataset subsets includes a unique storage method for each graph dataset subset; and

a schema creation and loading module executing on the computing system and configured to arrange the data and relationships in each graph dataset subset in accordance with its associated storage method to create the schema for the graph dataset.

20. The system of claim 19 , wherein the analyzer module comprises a relationship co-occurrence analyzer, a relationship cardinality analyzer and an entity and data value analyzer.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 14, 2016
From: BORNEA, MIHAELA ANCUTA; DOLBY, JULIAN TIMOTHY; FOKOUE-NKOUTCHE, ACHILLE BELLY; KEMENTSIETSIDIS, ANASTASIOS; SRINIVAS, KAVITHA
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 037963/0389 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 14, 2013
From: BORNEA, MIHAELA ANCUTA; DOLBY, JULIAN TIMOTHY; FOKOUE, ACHILLE; KEMENTSIETSIDIS, ANASTASIOS; SRINIVAS, KAVITHA
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 031010/0880 →
Continuity (1)
Related Publication 20150052175A1 · Feb 19, 2015